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

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

NoMore 20-08-07 14:24

|שאלה| {PHP + MYSQL} שאילתה
 
היי
מה mysql_escape_string/mysql_real_escape_string עושה?
לא הצלחתי להבין מה PHP.NET :\

RS324 20-08-07 14:30

עושה את אותה פעול כמו mysql_escape_string פשוט הוא משתמש בהגדרות של השפה של ה MYSQL

NoMore 20-08-07 15:14

ומה mysql_escape_string עושה? (התכונתי לשניהם בהודעה)

ASTeam 20-08-07 17:31

mysql_escape_string
מוסיף \ לפני '
שזה בעצם מסנן פקודות וכו' של המסד

HighA 20-08-07 20:26

גם אני אף פעם לא הבנתי :\
זה לא כמו לעשות htmlspacialchars?

ASTeam 21-08-07 08:06

לא..
html חוסם פקודות HTML
סתם דוג' יש אפשרות של הוספת דפים?
אז בשם הדף(שיהיה גם הלינק הדינאמי) יעשו
<a href="xx"> שם הדף </a>
והלינק שיוצג יקושר לשם...

לעומת זה ה
mysql_escape_string
מסנן פקודות שנועדו לשרת
נגיד הרשמת משתמשים? אז בסיסמא אדם יכול לכתוב את כל השאילתה שוב..ואז זה יבנה שני שאילתות(חח אם לא הבנת אני אסביר יותר טוב..)

NoMore 21-08-07 08:22

לא ממש הבנתי
אפשר דוגמא לשימוש בזה גם?

ASTeam 21-08-07 08:32

אני כמעט בטוח שזה זה...(אם זה טעות נא לתקן אותי..)
זו שאילתה רגילה -
PHP קוד:

INSERT
        INTO   users 
(reg_username,
                      
reg_password,
                      
reg_email)
        
VALUES ('{$_POST['reg_username']}',
                
'$reg_password',
                
'{$_POST['reg_email']}')"; 

נכון?
עכשיו נגיד שבאחד האינפוטים(input) אני אשים את זה -
PHP קוד:

bad_guy', 'mypass', ''), ('good_guy 

מה יצא?
השאילתה הבא -
PHP קוד:

        INTO   users (reg_username,
                      
reg_password,
                      
reg_email)
        
VALUES ('bad_guy''mypass'''), ('good_guy',
                
'1234',
                
'shiflett@php.net')"; 

שמת לב מה קרה? הכנסו שני שאילתות במקום אחת..
אם אני יעשה ככה מיליונים? השרת יפול.

לעומת זו עם הפונק הנ"ל אנחנו חוסמים את " ' " ואין את הפאשרות הזו.
מקווה שעזרי ;-) ותקנו אותי אם אני טועה..

השאילתות לקוחות מphpsec.org

Daniel 21-08-07 09:15

ב-TT0 יש דוגמה מצויינת,

ולא, השרת לא יקרוס, הוא יהיה בסדר באותה המידה כמו שעשית שאילתה רגילה.


http://www.trythis0ne.com/levels/rea...TT0F/index.asp
זה ב-ASP, אבל העיקרון דומה.
נסו לקבל גישת מנהל בפורום.
(זה המטרה של זה),
ב-http://www.trythis0ne.com יש עוד המון אתגרים.

(זה לא פירסום אתר או משו-מי יעבור לשם?)

NoMore 21-08-07 10:17

או קיי, הבנתי מה זה עושה
אבל איך משתמשים בזה?
אני מריץ את זה על השאילתה ואז עושה mysql_query או זה גם מחליף את הmysql_query
ומה עדיף?
mysql_escape_string או mysql_real_escape_string ?


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

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