Avatar ·

كيفية تنظيف إدخال المستخدم في PHP بشكل صحيح من هجمات XSS وحقن SQL؟

مرحبًا بالجميع! أنا مطور PHP مبتدئ، أكتب أول موقع لي — دفتر زوار بسيط. يترك المستخدمون اسمًا ورسالة، أحفظها في MySQL ثم أعرضها على الصفحة. حاليًا، الكود الخاص بي يبدو كالتالي: ```php // حفظ في قاعدة البيانات $name = $_POST['name']; $message = $_POST['message']; $sql = "INSERT INTO comments (name, message) VALUES ('$name', '$message')"; mysqli_query($conn, $sql); // عرض على الصفحة echo "

$name: $message

"; ``` لاحظت أنه إذا أدخلت في حقل الاسم شيئًا مثل ``، فعند عرض الرسالة تظهر نافذة منبثقة. وإذا أدخلت `' OR '1'='1`، يبدو أن الاستعلام يتعطل. قرأت أنه يجب "تنظيف" (sanitize) الإدخال، لكنني لا أفهم كيفية القيام بذلك بشكل صحيح. هناك الكثير من النصائح على الإنترنت — البعض يقول استخدم `htmlspecialchars()`، والبعض الآخر يقول `strip_tags()`، وآخرون يقولون `mysqli_real_escape_string()`. وأي من هذه الأمور ضروري حقًا؟ أم يجب استخدامها جميعًا معًا؟ أرجو الإفادة، من فضلكم.