English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
يمكن استخدام Javascript كأداة لتهجيم الموقع، حيث أن إدراج js (javascript) هو وسيلة من وسائلها، لذا، دعونا نتعلم كيفية منع هجمات تداخل js. هناك تصريح جيد، دعنا نتشاركه:
ما هو هجوم التداخل في JavaScript؟
عندما يتم تقديم محتوى المستخدمين وإعادة عرضه، يصبح الموقع معرضًا لهجمات التداخل في JavaScript. دعونا ندرس تطبيقًا معرضًا لهجمات التداخل في JavaScript. افترض أنك قمت بإنشاء موقع ملاحظات العملاء. يمكن للعملاء زيارة الموقع وإدخال ملاحظات حول المنتج. عند تقديم الملاحظات، يتم عرض الملاحظات مرة أخرى على صفحة الملاحظات.
الموقع الخاص بالملاحظات العملاء هو موقع بسيط. ولكن للأسف، هذا الموقع معرض لهجمات التداخل في JavaScript.
افترض أنك تقوم بادخال النص التالي في نموذج ملاحظات العملاء:
<script>alert(“Boo!”)</script>
يُمثل هذا النص سكربت JavaScript لعرض نافذة رسالة تحذير. عند تقديم هذا السكربت إلى نموذج ملاحظات العملاء، سيتم عرض رسالة Boo! في المستقبل عند زيارة أي شخص للموقع الخاص بـ ملاحظات العملاء. قد تعتقد أيضًا أن الآخرين لن يستخدموا هجوم التداخل في JavaScript لإحداث ضرر.
الآن، رد فعلك الأول على هجوم التداخل في JavaScript قد يكون هو تجاهلها. قد تعتقد أن هجوم التداخل في JavaScript ليس أكثر من مجرد إزعاج، ولكن للأسف، يمكن للمهاجمين استخدام هجوم التداخل في JavaScript لإجراء أنشطة تخريبية في الموقع. يمكن تنفيذ هجوم التداخل في JavaScript عن طريق تنفيذ سكربتات الهجوم عبر الموقع (XSS). في هجوم سكربت عبر الموقع، يمكن سرقة معلومات المستخدمين السرية并发ارتها إلى موقع آخر.
على سبيل المثال، يمكن للمهاجمين استخدام هجمات حقن الـ JavaScript لسرقة قيم الكوكي من متصفحات المستخدمين الآخرين. إذا تم تخزين معلومات حساسة (مثل كلمات المرور، أو أرقام بطاقات الائتمان أو أرقام التأمين الاجتماعي) في كوكي المتصفح، يمكن للمهاجمين سرقة هذه المعلومات باستخدام هجمات حقن الـ JavaScript. أو إذا أدخل المستخدمون معلومات حساسة في حقول النموذج على الصفحة التي تتعرض لهجمات الـ JavaScript، يمكن للمهاجمين استخدام الـ JavaScript المدمج في الحصول على بيانات النموذج并发رسلها إلى موقع آخر.
يرجى الانتباه. تعامل مع هجمات حقن الـ JavaScript بجدية و защي معلومات المستخدمين السرية. في الجزأين التاليين، سنناقش طريقتين لمنع تطبيقات ASP.NET MVC من التعرض لهجمات حقن الـ JavaScript.
الطريقة 1:ترميز HTML في النمط
من الطرق البسيطة لإعاقة هجمات حقن الـ JavaScript هي إعادة عرض البيانات في النمط باستخدام الترميز الـ HTML لأي بيانات تم إدخالها من قبل مستخدمي الموقع
مثل:<%=Html.Encode(feedback.Message)%>
ماذا يعني ترميز سلسلة باستخدام HTML؟ عند ترميز سلسلة باستخدام HTML، يتم استبدال الرموز الخطرة مثل < و > بمعادلات HTML مثل < و >. لذا، عند استخدام الترميز الـ HTML للسلسلة <script>alert(“Boo!”)</script>، يتم تحويلها إلى <script>alert(“Boo!”)</script>. لا يعد المتصفح ي�行ير سكريبتات الـ JavaScript عند تحليل السلسلة المرمزة، بل يعرض صفحة غير مؤذية
الطريقة 2:ترميز HTML قبل إرسال البيانات إلى قاعدة البيانات
بالإضافة إلى استخدام الترميز الـ HTML لت编码 البيانات عند عرضها في النمط، يمكنك أيضًا استخدام الترميز الـ HTML لت编码 البيانات قبل إرسالها إلى قاعدة البيانات. الطريقة الثانية هي الحالة التي يتم فيها الترميز في برنامج القائمة 4. الترميز قبل إرسال البيانات إلى قاعدة البيانات
مثل:
public ActionResult Create(string message) { // إضافة ملاحظة var newFeedback = new Feedback(); newFeedback.Message = Server.HtmlEncode(message); newFeedback.EntryDate = DateTime.Now; db.Feedbacks.InsertOnSubmit(newFeedback); db.SubmitChanges(); // Redirect return RedirectToAction(“Index”); }
لاحظ أن قيمة Message تتم إعادة تشفيرها برمز HTML قبل إرسالها إلى قاعدة البيانات في عملية Create(). عند عرض Message في الرؤية، يتم تشفير Message، مما يمنع تنفيذ أي JavaScript تم تعيينه في Message.
الخلاصة
عادة، يفضل الناس استخدام الطريقة الأولى التي ناقشناها في هذا التعليم، وليس الطريقة الثانية. مشكلة الطريقة الثانية هي أن البيانات المشفرة برمز HTML ستظل موجودة في قاعدة البيانات. بمعنى آخر، ستشمل البيانات في قاعدة البيانات أحرفًا غريبة. ما هي العيوب؟ إذا كنت بحاجة إلى عرض بيانات قاعدة البيانات بشكل غير عبر الإنترنت، فقد تواجه مشاكل. على سبيل المثال، لا يمكنك بسهولة عرض البيانات في تطبيق Windows Forms.
هذا هو نهاية محتوى هذا المقال، نأمل أن يكون قد ساعدكم في تعلم، ونأمل أن تشجعوا على دعم وتصفيق تعليمات النمط.
البيان: محتويات هذا المقال تم جمعها من الإنترنت، وتحمل حقوق الطبع والنشر لمالكها، وقد تم إضافة المحتويات من قبل مستخدمي الإنترنت بشكل تلقائي، ويحمل هذا الموقع حقوق الملكية، ولا يتم تعديل المحتويات بشكل يدوي، ولا يتحمل الموقع أي مسؤولية قانونية تتعلق بذلك. إذا رأيت محتوى يشتبه في انتهاك حقوق النسخ، فلا تتردد في إرسال بريد إلكتروني إلى: notice#oldtoolbag.com (عند إرسال البريد الإلكتروني، يرجى استبدال #بـ @) للإبلاغ، وتقديم الدليل على ذلك، وإذا تم التحقق من ذلك، فإن هذا الموقع سيقوم بإزالة المحتوى المزعوم بسرعة.