SQL -PHP שגיאה
-
@dovid אמר בSQL -PHP שגיאה:
אבל אני מבין ממך שדוקא כן רק שזה לא ישיר
הקלט שמתקבל מהמשתמש הוא שם הקובץ או שם כולל של כל הקבצים!
כל השאר מתבצע באופן אוטו' על הקובץ.בהחלט אם הוא יכניס שם קובץ אחר זה יכול לשגע את המערכת, שוב לא מדובר במערכת עבור משתמשים לא מוכַּרים (אם הם ידפקו את עצמם.. שייהנו).
בכל מקרה הוספתי לכל מידע שיעבור דרך הפונקציה הבאה:
function clian_input($data){ $data = trim($data); $data = htmlspecialchars($data); $data = stripcslashes($data); return $data;
-
@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 הוא יוברח! -
@dovid אמר בSQL -PHP שגיאה:
אבל אני לא רואה אפשרות להזריק קוד PHP
גם קוד php הוא בתוך תגית...
אם אני אחזיר מהdb מידה שתוכנו הוא קוד php עם תגיות php הקוד יופעל,
מה שאין כן כרגע לאחר הניתוח של הסטרינג התגיות מוחלפות בקוד & lt; או & gt; ...
(ד.א. שמתי לב עכשיו שהפונקציה הזאת מטפלת גם בגרש בודד.)