הרשם שאלות ותשובות רשימת חברים לוח שנה הודעות מהיום

חזור   הוסטס - פורום אחסון האתרים הגדול בישראל > עיצוב גראפי, תכנות על כל שפותיו וקידום ושיווק אתרים > פורום תיכנות > תכנות - מדריכים, code snippets

   
|!|

השב
 
כלים לאשכול תצורת הצגה
ישן 09-07-10, 14:10   # 1
intercooler3819
חבר וותיק
 
מיני פרופיל
תאריך הצטרפות: Jul 2008
הודעות: 1,056

intercooler3819 לא מחובר  

ציטוט:
נכתב במקור על ידי ~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"


עריכה:
בהמשך למה שזה שמעליי אמר, בשביל לבדוק אם הערך מספרי בשיטה הכי תיקנית אפשר להשתמש בביטוי רגולארי פשוט:
PHP קוד:
if (preg_match("/[^0-9]/"$id))
    die(
"This is not a number."); 

CAPTCHA בכלל לא מיועד לפתירה של XSRF/CSRF

אפשר להשתמש בזה לזה.. אבל על כל טופס באתר תמקם CAPTCHA?

בנוסף - אין שום סיבה לא להשתמש ב REFERER - רק קח בחשבון שזה לא חובה שדפדפן ישלח REFERER וגם כל אחד יכול לשנות אותו בהתאם למצב רוח
__________________
  Reply With Quote
ישן 09-07-10, 15:06   # 2
Shay Ben Moshe
משתמש - היכל התהילה
 
מיני פרופיל
תאריך הצטרפות: Oct 2007
הודעות: 1,397

Shay Ben Moshe לא מחובר  

כבוד על ההשקעה אבל הקודים שלך ממש לא חכמים...
PHP קוד:
$formString strip_tags(htmlspecialchars($_POST['string'])); 
גם מוחק וגם הופך תגים לתוויות מתאימות. צריך רק אחד מהם (אני אישית בעל htmlspecialchars).
PHP קוד:
$intValue is_numeric($_GET['id']) && intval($_GET['id']) > $_GET['id'] : die("Invalid id value"); 
נתחיל מזה שהפונקציה intval לא ממש יעילה ופה גם מיותרת אם אתה כבר יודע שהמשתנה הוא נומרי. הפתרון החכם הוא או להמיר לint ואז לוודא שהמספר אכן קיים בDB או להשתמש בescaping או משהו בסגנון.
PHP קוד:
$value strip_tags(htmlspecialchars(mysql_real_esace_string($_GET['string']))); 
אותו סיפור כמו קודם...
__________________
שי בן משה - בונה אתרים
חותך אתרים, ומתכנת צד לקוח וצד שרת.
  Reply With Quote
השב

חברים פעילים הצופים באשכול זה: 1 (0 חברים ו- 1 אורחים)
 

Tags
אבטחה, מדריך למתחילים, מדריך php


חוקי פירסום
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is מופעל
סמיילים הם מופעל
[IMG] קוד מופעל
קוד HTML מכובה

קפיצה לפורום


כל הזמנים הם GMT +2. הזמן כעת הוא 00:03.

מופעל באמצעות VBulletin גרסה 3.8.6
כל הזכויות שמורות ©
כל הזכויות שמורות לסולל יבוא ורשתות (1997) בע"מ