انتقل إلى محتوى الدرس

Sending GET Query Parameters Safely إرسال معاملات GET بأمان

أرسل طلبات AJAX بأمان في JavaScript: أتقن تهيئة xhr.open وxhr.send، وإبقاء الوضع غير المتزامن true، وترميز معاملات GET بـ encodeURIComponent، وضبط رؤوس POST.
3 صفوف تعليمية
جافا سكريبت
2,937 مشاهدة

شرح صفوف ومحتوى الفقرة

الصف 1 شرح توضيحي

اقصر طلبات GET حصراً على عمليات القراءة والاستعلام (كالبحث والترشيح)، ولا ترسل بها كلمات مرور أو أوامر حذف وتعديل أبداً! وعند دمج نص كتبه الزائر في الرابط، مرّره دائماً عبر encodeURIComponent(val) لتحويل الرموز الخاصة مثل C++ وR&D إلى ترميز آمن لا يقطع المعاملات:

طريقة الطلبمكان انتقال البياناتالطبيعة والتخزين المؤقتالقاعدة الأمنية الواجبة
GETسلسلة الاستعلام بالرابط (?q=...)قراءة فقط، قابلة للمشاركة والتخزين المؤقتترميز المدخلات بـ encodeURIComponent() وحظر إرسال الأسرار بالرابط
POSTجسم الرسالة داخل xhr.send(body)تنشئ أو تعدّل بيانات بالخادم ولا تُخزن مؤقتاًضبط حقل رأس الطلب Content-Type بعد open()
الصف 2 كود برمجي
JavaScript
const rawTopic = 'C++ & Async #1';
const safeQuery = '?topic=' + encodeURIComponent(rawTopic);
const out = document.getElementById('get-out');
const xhr = new XMLHttpRequest();
const demoUrl = 'data:application/json,' +
  encodeURIComponent(JSON.stringify({ sent: safeQuery }));
xhr.onload = () => {
  out.textContent = JSON.parse(xhr.responseText).sent;
};
xhr.open('GET', demoUrl, true);
xhr.send();
الصف 3 ملاحظة هامة