كيفية تنظيف إدخال المستخدم في 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()`. وأي من هذه الأمور ضروري حقًا؟ أم يجب استخدامها جميعًا معًا؟ أرجو الإفادة، من فضلكم.