الهجمات مثل SQL Injection و Cross-Site Scripting (XSS) تشكل تهديدًا خطيرًا لأمان التطبيقات، حيث تستغل الثغرات الأمنية لإدخال أكواد ضارة تؤثر على قاعدة البيانات أو المستخدمين الآخرين.
💾 1. الحماية ضد SQL Injection
🔹 SQL Injection يحدث عندما يتمكن المهاجم من إدخال أكواد SQL غير موثوقة في استعلام قاعدة البيانات، مما يسمح له بتعديل البيانات أو الوصول إلى معلومات سرية.
✔️ استخدام الـ Prepared Statements لمنع الإدخال المباشر:
php
$stmt = $pdo->prepare("SELECT * FROM users WHERE username = :username");
$stmt->execute(['username' => $input]);
✅ هنا يتم فصل الإدخال عن الاستعلام، مما يمنع أي تنفيذ غير مقصود لأكواد SQL.
✔️ فلترة المدخلات والتأكد من صحة البيانات:
php
$username = filter_var($_POST['username'], FILTER_SANITIZE_STRING);
✅ هذا يمنع المستخدم من إدخال أي رموز غير متوقعة تؤدي إلى تعديل قاعدة البيانات.
✔️ تحديد صلاحيات قاعدة البيانات بحيث لا يسمح للمستخدم العادي بتنفيذ عمليات حساسة**:
sql
GRANT SELECT, INSERT ON users TO 'web_user'@'localhost';
✅ يحد من قدرة الحساب المستخدم للاتصال بقاعدة البيانات حتى لا يتمكن من تنفيذ أوامر ضارة.
🌍 2. الحماية ضد XSS (Cross-Site Scripting)
🔹 XSS يحدث عندما يتمكن المهاجم من إدخال أكواد JavaScript ضارة في صفحات الويب، مما يسمح له بسرقة معلومات الجلسات أو تنفيذ عمليات نيابة عن المستخدمين الآخرين.
✔️ تنظيف المدخلات لمنع تنفيذ الأكواد الضارة:
php
function sanitize_output($data) {
return htmlspecialchars($data, ENT_QUOTES, 'UTF-8');
}
echo sanitize_output($_GET['input']);
✅ يمنع إدخال أكواد JavaScript غير مرغوب بها في الموقع.
✔️ استخدام الـ Content Security Policy (CSP) لمنع تشغيل الأكواد الخارجية:
html
<meta http-equiv="Content-Security-Policy" content="default-src 'self'; script-src 'self';">
✅ يقيد تشغيل الأكواد فقط من مصادر موثوقة.
✔️ تفعيل تصفية المدخلات في قواعد البيانات:
sql
CREATE TABLE secure_table (
id INT AUTO_INCREMENT PRIMARY KEY,
content TEXT NOT NULL,
sanitized_content TEXT GENERATED ALWAYS AS (html_escape(content))
);
✅ يضمن أن أي إدخال يتم تحويله إلى نص آمن لا يمكن استغلاله لتنفيذ أكواد غير مرغوب بها.
🛡️ 3. أدوات وتقنيات إضافية لتعزيز الأمان
✔️ استخدام WAF (Web Application Firewall) مثل ModSecurity لرصد ومنع الهجمات.
✔️ الحد من الأخطاء المكشوفة عبر تعطيل عرض رسائل الخطأ التفصيلية للمستخدمين العاديين.
✔️ ضبط صلاحيات المستخدمين في قاعدة البيانات والموقع بحيث لا يتمكن أي شخص من تنفيذ عمليات إدارية غير مصرّح بها.
💡 هذه التقنيات تمنحك حماية قوية ضد SQL Injection و XSS،