SQL -PHP שגיאה
-
@dovid אמר בSQL -PHP שגיאה:
אתה צריך להשתמש בפרמטרים https://www.php.net/manual/en/mysqli.prepare.php
זה גם חוסך לך את כאב הראש של ניקוי המחרוזת או מה שנקרא escaping שלה, וגם מאבטח אותך. -
-
צריך לנקות את כל ערך שמקורו במשתמש. במקרה שלך שמדובר בקובץ גדול שעובר עיבוד ועל פיו אתה בונה טבלאות, אז אתה צריך בכל ערך שאתה משתיל בפקודת SQL לודאות את "נקיונו".
אני חושב שהפונקציה הזאת https://www.php.net/manual/en/mysqli.real-escape-string.php טובה עבורך. -
@dovid
לפי המידע שקראתי שם
הפונקציה עושה את מה שעושים הפונקציות שכתבתי לך קודם ( ()trim() , stripcslashes)
התו היחיד שהפונקציה אותה נתת בודקת יותר מהפונקציות הנ"ל הוא " ' " (גרש בודד).
בכל מקרה ניתן להוסיף אותו לפונקצית ה ()trim כמופיע כאן:
https://www.php.net/manual/en/function.trim.php
ומה שאני עושה אפילו יותר מזה זה הפונקציה ()htmlspecialchars
שמבריחה את כל תגיות הhtml למינהם... כך שאם מישהו ינסה להזריק סקריפט PHP הוא יוברח! -
שימו לב שאפשר להזריק קוד JS, וגרוע מכך JS מקודד
-
@dovid אמר בSQL -PHP שגיאה:
אבל אני לא רואה אפשרות להזריק קוד PHP
גם קוד php הוא בתוך תגית...
אם אני אחזיר מהdb מידה שתוכנו הוא קוד php עם תגיות php הקוד יופעל,
מה שאין כן כרגע לאחר הניתוח של הסטרינג התגיות מוחלפות בקוד & lt; או & gt; ...
(ד.א. שמתי לב עכשיו שהפונקציה הזאת מטפלת גם בגרש בודד.) -
@ש-ב-ח אמר בSQL -PHP שגיאה:
אם אני אחזיר מהdb מידה שתוכנו הוא קוד php עם תגיות php הקוד יופעל,
זהו שאני אומר שלא. הוא יוצג במסמך.
-
@dovid אמר בSQL -PHP שגיאה:
זהו שאני אומר שלא. הוא יוצג במסמך.
גם עם הוא יעלה עם המסמך הוא לא יופעל?
לא בדקתי... אתה יודע בוודאות שהוא רק יוצג ולא יופעל? -
@dovid אמר בSQL -PHP שגיאה:
@ש-ב-ח איך הוא "יעלה" עם המסמך? אתה לא מתכוון לשמור קבצי PHP על הדיסק נכון?
לא ירדתי לסוף הבנת השאלה.
20/26