22-07-2005, 09:27
|
מנהל פורומי "תכנות ובניית אתרים" ו"חומרה ורשתות"
|
|
חבר מתאריך: 25.10.01
הודעות: 42,775
|
|
ב register_globals עצמה אין סיכון אבטחה
סיכון האבטחה הוא המתכנת הלא זהיר. ככלל, אם אתה מקפיד לאתחל כל משתנה לפני שאתה משתמש בו לערך רצוי וידוע, ל register_globals אין שום השפעה עלייך. הבעייה שרוב המתכנתים שוכחים לעשות את זה... והתוצאה... אפשרות לחבל במשתנים פנימיים של הסקריפט שלך, שאתה מניח מראש שהם מכילים את הערכים שלך, למרות שבפועל הם לא, מה שמאפשר לכל גולש להתעסק עם התוכנה שלך לא כפי שציפית.
בכך ש register_globals הוא off, משתנים מהגולשים ייכנסו למשתנים בתוכנה אך ורק על ידי הצהרה מפורשת של המתכנת. כמובן, שזה לא פוטר את המתכנת מבדיקה שערך הקלט הוא אכן ערך מצופה, ושלא מנסים לחבל בו, אבל זה כן פוטר אותו מלבדוק את כל המשתנים בתוכנה, כיוון שהגולש אינו יכול להשפיע עליהם, אלא רק על אלו שהועברו באמצעות המערכם הגלובאליים GET, POST ו-REQUEST [תוסיף _$ לפני כולם, זה פשוט מתחרבש אם אני כותב כך] (בשונה ממה שכתב זה שמעלי, כאילו רק דרך GET אפשר...)
|