ציטוט:
נכתב במקור על ידי ~The_Sultan~
יפה, מדריך שיכול לעזור מאוד
ותן קצת קרדיט על ה-SQLI..
ובקשר ל-$_SERVER['HTTP_REFERER'], זה לא ממש מומלץ להשתמש בזה סתם ככה, כי זה יכול לגרום בעיות אם למשל שינית דומיין או אם אתה עובד עם כל כתובות אחרות שיכולות להשתנות.
בגדול עדיף אבטחה עם מסד או קוד CAPTCHA, אבל אם בכל זה מחליטים להשתמש בכתובת המפנה,
אני ממליץ להשתמש בפונקציה הזו:
http://php.net/manual/en/function.parse-url.php
אבל כאן עדיין יש חור, במקרה שהבנאדם ישים על השרת שלו את אותה הכתובת, ולכן, הנה קוד סופי:
PHP קוד:
global $config;
$ref = $_SERVER['HTTP_REFERER']; $current_ref = "index.php?act=form&op=fill"; $divide = parse_url($ref); if (($divide['scheme']."://".$divide['host'] != $config['site_url']) && ($divide['path'] != $current_ref)) die("False referrer.";
ובמשתנה הגלובלי $config, צריך להיות משהו כזה:
PHP קוד:
$config['site_url'] == "http://google.com";
|
מה פתאום, כל הרעיון זה שהמתכנת ישמור איפשהו את המקור ואז ישווה לHTTP REFFER.
אני נותן טיפים לא מדריך חח.
ציטוט:
נכתב במקור על ידי nitsanbn
כתבה טובה כל הכבוד על ההשקעה!
מספר המלצות:
יש עוד כמה אי דיוקים קטנים (למה להשתמש ב INTVAL אם עשית בדיקה שהערך הוא נומרי? מה גם ש is_numeric מקבל סטרינגים כמו 10E10 ומאשר אותם בתור INT)
|
זה מה שידוע לי על CSRF, אם היה לי יותר ידע הייתי משתף אותו אבל אין לי ידע מושלם עוד בו, אני נתקלתי בו פעם אחת בחיי זה הכל.
לגבי השאר זאת אבטחה בסיסית לחלוטין, אין לאף אחד שימוש כאן לעשות באבטחה מושלמת אנשים כאן בונים דברים פשוטים ואני נותן טיפים לאנשים שמתחילים רק. אם זאת הייתה קהילה של מתכתנים שבונים מערכות יקרות שצריכות אבטחה יותר טובה הייתי משחרר כבר פונקציות הגנה.