אישור פעולות של Claude Code מהטלפון בטוח למדי אם ההגדרה מצומצמת: רק טלפונים שחיברתם יכולים לענות, הטלפון יכול לענות רק על prompts ש-Claude Code היה מציג לכם בכל מקרה, וכללי ה-deny שלכם חלים בלי קשר למה שהטלפון אומר. הסיכונים האמיתיים הם אנושיים ומעשיים: לאשר פקודה שלא קראתם על מסך קטן, מישהו אחר שמחזיק את הטלפון הפתוח שלכם, ופרטי פרויקט שעוברים דרך שירות relay ומופיעים במסך הנעילה. כלי אישור מרחוק שבנוי היטב מגביל את הקבוצה הראשונה; את השנייה מנהלים בעזרת כמה הגדרות.
01איך עובד אישור מרחוק
ל-Claude Code יש אירוע hook בשם PermissionRequest. הוא רץ כש-Claude Code עומד לבקש מכם הרשאה להשתמש בכלי. ה-hook יכול לענות בהחלטה, allow או deny, ו-Claude Code משתמש בה במקום לחכות לתשובה שלכם ב-terminal. כלי אישור מרחוק משתמשים ב-hook הזה: ה-hook שולח את הבקשה לטלפון, ממתין ומחזיר את התשובה שלכם. המדריך ל-PermissionRequest מציג את ה-JSON.
שלוש תכונות של המבנה הזה חשובות לבטיחות. כולן מבוססות על תיעוד ה-hooks של Anthropic:
- הוא מופעל רק כשהיה מוצג prompt. אם מצב ההרשאות או כללי ה-allow שלכם כבר מאפשרים פעולה, לא נשלחת בקשה. אישור מרחוק לא יכול לתת ל-Claude יותר כוח ממה שהיה לכם ליד המקלדת.
- כללי deny עדיין גוברים. hook שמחזיר
allowלא עוקף כללי deny מההגדרות שלכם. אם חסמתם אתRead(./.env), הקשה בטלפון לא תאפשר ל-Claude לקרוא אותו. - ה-hook רץ בשמכם. command hooks רצים עם כל הרשאות המשתמש שלכם. כל תוכנה שתתקינו כ-hook יכולה לקרוא ולשנות כל מה שהחשבון שלכם יכול. לכן בחירת הכלי היא חלק מהאבטחה שלכם, לא רק הטלפון.
02הסיכונים, ומה מגביל כל אחד מהם
מישהו אחר עונה
המקרה הגרוע ביותר הוא שאדם או מכשיר שלא התכוונתם אליו מאשר פעולה. מה מגביל את זה:
- חיבור (pairing). טלפון יכול לענות רק בשם מחשב שחובר אליו. ב-Claude Code Notifier, החיבור נעשה באמצעות קוד QR או קוד בן 6 ספרות שתקף ל-24 שעות, ולכל מחשב אפשר לחבר עד שלושה טלפונים.
- ביטול.
ccn devicesמציג את הטלפונים שמחוברים למחשב, ו-ccn devices revoke <name>מסיר אחד מהם.ccn forgetמוחק מהשרת את המחשב ואת כל החיבורים שלו. - נעילת הטלפון. כל מי שמחזיק את הטלפון שלכם כשהוא פתוח יכול לענות. התייחסו לטלפון כמפתח לסשנים של Claude Code במחשב שלכם, והשתמשו בקוד גישה או בנעילה ביומטרית.
אתם מאשרים משהו שלא קראתם
בטלפון קל לדלג על פקודת shell ארוכה. כמה הרגלים עוזרים:
- קראו את כל הפקודה לפני שאתם מקישים על אישור. אם לא ברור שהיא תקינה, דחו אותה ובדקו ב-terminal אחר כך.
- עדיף לאשר פעם אחת ולא לאשר לכל הסשן לכל פעולה שמשנה מצב מחוץ לפרויקט, כמו
git push, דיפלוי או התקנת חבילות. - כדאי להגדיר פקודות מסוכנות תחת חוקי
askוסודות תחת חוקיdenyבהגדרות, כך שהמקרים המסוכנים יוכרעו לפי חוקים שכתבתם בראש שקט ולא לפי הקשה חפוזה בתור. המדריך למצבי ההרשאות מציג את התחביר.
אתם בעצם ליד המקלדת
אם בקשה מגיעה לטלפון בזמן שאתם יושבים מול המחשב, שני גורמים (אתם והטלפון) יכולים לענות לאותו prompt. Claude Code Notifier בודק נוכחות במחשב: אם הקלדתם ב-30 השניות האחרונות, שום דבר לא ממתין לטלפון וה-terminal שואל כרגיל. אם אתם לא ליד המחשב, ה-terminal ממתין לתשובה מהטלפון עד לתקרת זמן שתבחרו, ומפסיק להמתין ברגע שנוגעים במקלדת. בדיקת חוסר הפעילות מתבצעת במחשב, והתוצאה שלה אף פעם לא נשלחת.
פרטי הפרויקט יוצאים מהמחשב
כדי להציג לכם בקשה, משהו צריך לשלוח את הפרטים שלה לטלפון. זה המחיר מבחינת פרטיות של כל התראה לטלפון עבור Claude Code, בין אם בניתם אותה בעצמכם ובין אם לא. ב-Claude Code Notifier, כפי שמפורט במדיניות הפרטיות:
- אין חשבונות. כל מחשב וטלפון מזוהים באמצעות מזהה אקראי.
- מה התראה יכולה לכלול: שם הפרויקט ונתיב התיקייה, ההודעה של Claude או השאלה שהוא שואל, תחילת ה-prompt שלכם, ובבקשת הרשאה גם שם הכלי ותקציר של הקלט שלו, כמו פקודת ה-shell או נתיב הקובץ (עד 200 תווים).
- לאן זה עובר: דרך שרת ה-relay של TouchTap, שרץ על Cloudflare, וגרסה מקוצרת נשלחת ל-Apple או ל-Google לצורך שליחת ה-push. נתיבי תיקיות הפרויקט לא נשלחים ל-Apple או ל-Google.
- כמה זמן זה נשמר: השרת מוחק התראות, ואת התשובות שלכם אליהן, תוך 48 שעות. שרת ה-relay לא שומר את כתובת ה-IP שלכם.
- בזמן המעבר: כל התקשורת עם השרת מוצפנת ב-TLS (HTTPS ו-WSS). ה-relay מחזיק את תוכן ההתראה כדי למסור אותה, כך שמדובר בהצפנה בזמן המעבר ולא בהצפנה מקצה לקצה.
- לא נמכר: הנתונים לא נמכרים ולא משמשים לפרסום.
במחשב, פרטי ההזדהות של ccn הם טוקן אקראי. כברירת מחדל הוא נשמר ב-Keychain של macOS או ב-Credential Manager של Windows, וב-Linux בקובץ שרק חשבון המשתמש שלכם יכול לקרוא; הפקודה ccn config set credential_store מחליפה בין ה-keychain של המערכת לבין קובץ.
אם אתם עובדים על קוד חסוי, המדיניות עצמה ממליצה לשקול אם התראות לטלפון מתאימות, ואילו סוגים להפעיל בכל מחשב. אפשר לכבות את notify_on_done, notify_on_permission או notify_on_question בנפרד, לכל מחשב, משורת הפקודה או מאפליקציית הטלפון.
מסך הנעילה חושף יותר מדי
באנר עם פקודה או עם שם פרויקט של לקוח גלוי לכל מי שמציץ בטלפון. גם ב-iPhone וגם ב-Android אפשר להסתיר תצוגה מקדימה של התראות עד שהטלפון נפתח, לכל האפליקציות או לאפליקציה אחת. ב-iPhone זה נמצא תחת הגדרות ואז עדכונים. ב-Android זה בהגדרות ההתראות של מסך הנעילה, בדרך כלל כאפשרות להסתיר תוכן רגיש.
03אישור מרחוק בבנייה עצמית
אפשר לבנות אישור מרחוק בעצמכם עם hook מסוג PermissionRequest ובוט צ'אט או שירות push. במקרה כזה אתם בעצם בונים מערכת אימות: רק אתם אמורים להיות מסוגלים לענות, תשובה ישנה לא אמורה לחול על בקשה חדשה, ובקשה תקועה לא אמורה להשאיר סשן תקוע. בשרת push ציבורי ומשותף, שם ה-topic הוא הדבר היחיד שמונע מזרים להיכנס, אז התייחסו אליו כמו לסיסמה. המדריכים ל-ntfy ול-Telegram, Slack או Discord עוסקים בהגדרות של התראות בלבד, שהסיכון בהן נמוך בהרבה כי הן לא יכולות לאשר שום דבר.
04Hooks ממאגרים שלא אתם כתבתם
יש עוד סיכון שחל על כל hook, לא רק על אישורים. אפשר לעשות commit ל-hooks בקובץ .claude/settings.json של פרויקט. בסשן אינטראקטיבי, Claude Code מעכב hooks עד שתאשרו את חלון האמון ב-workspace עבור התיקייה, אז קראו את קבצי .claude/ של מאגר לפני שתסמכו עליו. בהרצות claude -p ו-SDK אין חלון כזה והתיקייה נחשבת מהימנה, כך שה-hooks שנמצאים במאגר רצים. בהרצות אוטומטיות על קוד שלא אתם כתבתם, העבירו --settings '{"disableAllHooks": true}'.
05איפה Claude Code Notifier נכנס לתמונה
Claude Code Notifier הוא כלי עצמאי של TouchTap Ltd. הוא לא פותח, לא מאושר ולא ממומן על ידי Anthropic. כלי שורת הפקודה שלו, ccn, רץ כ-hooks של Claude Code ב-Mac, ב-Windows וב-Linux, והאפליקציות שלו ל-iPhone ול-Android מאפשרות לאשר פעם אחת, לאשר לכל הסשן או לדחות. הקוד של ccn זמין לעיון ב-GitHub, כך שאפשר לקרוא בדיוק מה ירוץ כ-hook שלכם לפני ההתקנה. המדריך לאישור מהטלפון מסביר את ההתקנה.
06שאלות נפוצות
האם אישור מהטלפון יכול לעקוף את חוקי ה-deny שלי?
לא. Claude Code בודק את חוקי ה-deny בלי קשר למה שה-hook מחזיר. אישור מרחוק יכול רק לענות על prompt ש-Claude Code היה מציג בכל מקרה.
האם Claude Code Notifier מוצפן מקצה לקצה?
לא. התעבורה אל שרת ה-relay וממנו מוצפנת ב-TLS, והשרת מוחק התראות ותשובות תוך 48 שעות. ה-relay מחזיק את התוכן בזמן שהוא מוסר אותו, וגרסה מקוצרת נשלחת ל-Apple או ל-Google עבור ה-push.
מה קורה אם הטלפון שלי אבד?
בכל מחשב, הריצו ccn devices כדי לראות את הטלפונים המקושרים, ו-ccn devices revoke <name> כדי להסיר את הטלפון שאבד. עד אז, נעילת הטלפון עצמה היא מה שמונע ממישהו לענות.
האם הקוד שלי יוצא מהמחשב?
ccn לא מעלה את הקבצים שלכם. ההתראות כוללות את הפרטים הדרושים כדי להציג בקשה: שם הפרויקט והתיקייה, ההודעה או השאלה של Claude, תחילת ה-prompt שלכם ותקציר קצר של הפקודה או הקובץ הרלוונטיים. ההודעה של Claude עשויה לצטט קוד, אז בפרויקטים רגישים כבו את סוגי ההתראות שאתם לא צריכים.