תהייה כללית על סוגיות אבטחה

אני לא ממש בטוח איך בדיוק זה בעייתי אבל יש לי רושם שפונקציות מסדר גבוה ופונקציות למדה יכולות להוות בעיית אבטחה בקוד בגלל החופש שהן מאפשרות למשתמש להכניס לקוד תמים פעולות לא תמימות…אז שתי שאלות:

  1. האם זה באמת בעיה או שאני מדמיין?
  2. אם זו יכולה להיות בעיה, האם נלמד איך מתמודדים איתה?

היי,

באיזה סצנריו לדעתך זו יכולה להיות בעיית אבטחה?
תוכל לתאר לי אחת כזו?

אם אני כותב פונקציה מסדר גבוהה לסביבה שבה אני לא שולט לגמרי בקלט שלה, יכול להיות מצב שיקראו לה עם פונקציה לא קשורה לחלוטין שמבצעת איזו פעולה לא רצויה (סתם דוגמה טיפשית, דורסת המון פונקציות מובנות).

ובנוגע לפונקצית למדה, לא יודע אם זה אפשרי אבל אולי אפשר להכניס פונקציה כזו קקלט מהמשתמש בצורה שתריץ קוד במקום לבצע השמה למשתנה.

בהקשר הזה כל פונקציה מובנית או מודול שלא אתה כתבת אך אתה בוחר להשתמש בו
יכולה להיות בו בעיית אבטחה
כי אתה לא באמת יודע מה יש בקוד שלהם…
לא?!

לא נראה לי שזה אותו דבר. ברור שיש גם בזה סיכון אבל אתה יכול לבחור לא להשתמש בפונקציות/מודולים שאתה לא מכיר. כשאתה “משחרר לטבע” פונקציה שמקבלת פונקציה כקלט אתה לא שולט ב 100% במה שהיא הולכת לעשות (לפחות זה החשד שלי אבל הוא לא מבוסס כל כך אז אולי אני טועה…).

לא הבנתי… אתה גם יכול לבחור שלא להשתמש בפונקציות מסדר גבוה