![]() |
[PHP] מה הייעוד של שני הפונקציות הבאות
PHP קוד:
|
mysql_escape_string - הוספת תווים לפני תווים מיוחדים.
mysql_real_escape_string - השמטת / החלפת תווים מיוחדים. לא בטוח, תמיד תוכל להסתכל באתר www.php.net |
הסתכלתי...
ואני גם לא בטוח... יהיה נכון להשתמש בייעוד שלהן ככה: mysql_real_escape_string($var); mysql_query("SELECT............. WHERE id=$val"); ואז...בשביל להוציא לפלט את הערך שהוא חיפש למשל... " ב" רגילאז נחליף את ה str_replace(""",""",$val); echo "נמצאו ..... תוצאות לערך'" . $val . "'"; |
זה לא טוב למערכות גדולות....אתה צריך פתרון יעיל.. שלא תצטרך להתעסק בקטנות כל הזמן
|
ציטוט:
לאחר החזרת התווים מהמסד יש משהו טוב שאפשר לעשות (הקוד לא שלי): PHP קוד:
|
טוב אז ככה, קודם כל בקובץ גלובלי עשיתי שיבדוק אם MEGIC QOUTES פעיל או לא
אם כן מסיר את כל הסלאשים שהחרא הזה הוסיף ואז שם אותו על 0 ini_set(magic_qoutes_runtime,0) משהו כזה - לא זוכר בדיוק, לאחר מכן עשיתי פונקציה שנקראת CLEAN שעובר על המערך ועושה MYSQL_REAL_ESCAPESTRING או את השני - לא זוכר כבר. וזהו בעת ההכנסה למסד לא הייתה לי בעיה ובעת ההוצאה מהמסד אין לי בעיה... וגם בדקתי עבור SQL INJECTION ואין עם זה שום בעיה |
ציטוט:
|
זה הכי פשוט שיש כי לדוגמא לפני שאילתה אני פשוט עושה
$_GET = clean($_GET) וזהו... זה בטוח מכל SQL INECJTION שתרצה |
מה הפונקציה clean עושה?
|
מגנה מפני SQL INJECTION בעזרת MYSQL_REAL_ESCAPE_STRING על כל אברי המערך
לפני שאילתה. יש כמובן עוד פונקציה שמבטלת את ההשפעה של magic_qoutes_runtime שאני מריץ אותה בכל מקרה לפני. |
כל הזמנים הם GMT +2. הזמן כעת הוא 21:23. |
מופעל באמצעות VBulletin גרסה 3.8.6
כל הזכויות שמורות ©
כל הזכויות שמורות לסולל יבוא ורשתות (1997) בע"מ