הוסטס - פורום אחסון האתרים הגדול בישראל

הוסטס - פורום אחסון האתרים הגדול בישראל (https://hosts.co.il/forums/index.php)
-   פורום תיכנות (https://hosts.co.il/forums/forumdisplay.php?f=14)
-   -   אבטחת האתר. (https://hosts.co.il/forums/showthread.php?t=86241)

morsrh 13-11-10 18:37

אבטחת האתר.
 
שלום , אילו בדיקות נדרשות כדי להכניס למסד טקסט חופשי ללא שום סקנות או חששות חוץ משני הפונקציות האלו?
mysql_real_escape_string
htmlspecialchars
להריץ על הטקסט REGEX ? אם כן מה לבדוק?
תודה.

AlmogBaku 13-11-10 20:48

mysql_real_escape_string בלבד.

במידה ואתה רוצה למנוע מהפלט להציג HTML, בהדפסה אתה עושה htmlspecialchars

Haimz 15-11-10 15:24

אני מאבטח באמצעות הפונק הבאה (לפי מה שהבנתי, GET ו POST, אבל בPOST אני לא שם mysql_real_escape_String בכל מקרה תראה של GET )

PHP קוד:

function protectGET($string) {
  
$way "get"// write POST or GET to protect
  
if($way == "post") {
    
$rem $_POST[$string];
  } else {
    
$rem $_GET[$string];
  }
  
$enc strip_tags(mysql_real_escape_string(htmlspecialchars(trim($rem)));
  return 
$enc;



morsrh 15-11-10 16:04

האבטחה של GET קשורה לאתר , איך אתה יוצר את הקישור וכו'.
טוב , הבנתי איך לאבטח POST , תודה.

Shay Ben Moshe 16-11-10 17:25

מה זה הקטע הזה של לעשות גם htmlspecialchars גם mysql_real_escape_string וגם strip_tags?????
אם אתה מגדיר לhtmlspecialchars את הארגומנט השני כENT_QUOTES אז הוא הופך את ה' ל', ואז הצורך בmysql_real_escape_string לא קיים, פשוט בדיקה כפולה ומיותרת. הstrip_tags מוחק את כל התגיות, אבל איך יכולות להיות תגיות אם הפעלת את הhtmlspecialchars.

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

AlmogBaku 16-11-10 18:15

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

מצב היפוטטי:
--
נתתי למשתמש להכניס עריכה של תוכן, עשיתי החלפה של תווים(htmlenteties || htmlspeacialchars) ושוב החלטתי לערוך- הנתונים שאקבל יכולים להיות פריקיים!

Erez | TrustMedia.co.il 16-11-10 19:35

ציטוט:

נכתב במקור על ידי Baku (פרסם 786295)
לא עושים בכלל החלפה של תווים בשמירה למסד!! למסד הנתונים צריכים להיות מוכנסים כמו שהם(דהיינו רק אסקייפינג(כדי למנוע שגיאות או הזרקות)).
ההגנות מפני XSS צריכות להתבצע בהדפסה בלבד.

מצב היפוטטי:
--
נתתי למשתמש להכניס עריכה של תוכן, עשיתי החלפה של תווים(htmlenteties || htmlspeacialchars) ושוב החלטתי לערוך- הנתונים שאקבל יכולים להיות פריקיים!

אז פשוט אפשר להמיר בחזרה לHTML כשרוצים עם htmlspecialchars_decode..

Shay Ben Moshe 16-11-10 22:42

Baku, אני דווקא מעדיף בד"כ להכניס את כל הנתונים עם htmlspecialchars. אני לא דואג להSQLI בגלל שאני משתמש רק בPDO ובPREPARED STATEMENTS אז הבעיה בכלל לא קיימת, ונח מאוד לעבוד עם נתונים שהם במסד ככה.

AlmogBaku 16-11-10 23:04

אז יש סיכוי מאוד גדול שבעתיד תתחרט על דרך העבודה שלך ;)

הרעיון הוא לא לעבוד לפי איך שנוח לנו דאווקה, אלא לפי מה שיותר לוגי =]

BlueNosE 17-11-10 15:27

ציטוט:

נכתב במקור על ידי Baku (פרסם 786340)
אז יש סיכוי מאוד גדול שבעתיד תתחרט על דרך העבודה שלך ;)

הרעיון הוא לא לעבוד לפי איך שנוח לנו דאווקה, אלא לפי מה שיותר לוגי =]

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


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

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