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

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

HOLD 08-07-09 04:42

אבטחה - SQL
 
איך אני יכול לאבטח את השאילתות שלי יותר?

ככה הן נראות עכשיו:

PHP קוד:

$result=mysql_query("SELECT dText,fText FROM KK_Data WHERE Name='".mysql_escape_string($_GET['name'])."'"); 

יש דרך לעשות אותן יותר "קשיחות"?

תודה.

ועוד משהו,
איך עושים שה-php לא יציג שגיאות של sql ?

stel222 08-07-09 13:32

קודם כל תשנה את הפונקציה mysql_escape_string ל mysql_real_escape_string

HOLD 08-07-09 14:05

ציטוט:

נכתב במקור על ידי stel222 (פרסם 726589)
קודם כל תשנה את הפונקציה mysql_escape_string ל mysql_real_escape_string

תודה, שיניתי.

יש עוד?

Shay Ben Moshe 08-07-09 14:22

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

AlmogBaku 09-07-09 23:48

PHP קוד:

$q="SELECT * FROM `tbl` WHERE `str`='" mysql_real_escape_string($str) . "' AND `int1`=" intval($int1) . " AND `float1`=" floatval($float1) . ";";
$r=mysql_query($q); 

דוגמא להכל פחות או יותר.

אדיר 10-07-09 00:35

ציטוט:

נכתב במקור על ידי Baku (פרסם 726919)
PHP קוד:

$q="SELECT * FROM `tbl` WHERE `str`='" mysql_real_escape_string($str) . "' AND `int1`=" intval($int1) . " AND `float1`=" floatval($float1) . ";";
$r=mysql_query($q); 

דוגמא להכל פחות או יותר.

האמת שאתה לא אמור להפוך את הקלט למספר כמו שעשית פה, אתה אמור לוודא שהוא מספר.

AlmogBaku 10-07-09 09:41

ציטוט:

נכתב במקור על ידי xPerfection (פרסם 726929)
האמת שאתה לא אמור להפוך את הקלט למספר כמו שעשית פה, אתה אמור לוודא שהוא מספר.

תלוי בצרכים מן הסתם..
אבל יש הרבה פעמים שבהם אם המשתמש מנסה לרמות אז מבחינתי זו "בעיה שלו".

ותעיף את ה"מאבטח אתרים" מהחתימה שלך.

Valred | OTM Group 10-07-09 11:13

ציטוט:

נכתב במקור על ידי Baku (פרסם 726961)
ותעיף את ה"מאבטח אתרים" מהחתימה שלך.

חחחחחחחחחחחחח
קרעת אותי

אדיר 10-07-09 12:01

ציטוט:

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

ותעיף את ה"מאבטח אתרים" מהחתימה שלך.

לא תלוי בשום צרכים, אתה אמור לאמת את הקלט ולא לשנות אותו.
ולמה בדיוק שאני אעיף את זה?

Shay Ben Moshe 10-07-09 13:20

ציטוט:

נכתב במקור על ידי xPerfection (פרסם 726985)
לא תלוי בשום צרכים, אתה אמור לאמת את הקלט ולא לשנות אותו.
ולמה בדיוק שאני אעיף את זה?

1+

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

AlmogBaku 10-07-09 14:16

ציטוט:

נכתב במקור על ידי The Chosen Generl (פרסם 727000)
1+

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

למה שתעיף את זה? כי בתור מאבטח אתרים, כל מילה שתגיד תחשב בעניי לבדיחה.אין דבר כזה.

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

Tomer 10-07-09 16:37

לא על כל שטות צריך להעיף למשתמש הודעת שגיאה / להרוג את הסקריפט.

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

אדיר 10-07-09 17:04

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

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

AlmogBaku 11-07-09 23:48

ציטוט:

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

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

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


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

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