المراسلة عبر الويب
المراسلة عبر الويب ، أو المراسلة بين المستندات ، هي واجهة برمجة تطبيقات (API) تم تقديمها في مسودة مواصفات HTML5 الصادرة عن WHATWG ، وتتيح للمستندات التواصل فيما بينها عبر مصادر أو نطاقات مصدر مختلفة [ 1 ] أثناء عرضها في متصفح الويب . قبل HTML5، كانت متصفحات الويب تمنع البرمجة النصية عبر المواقع (XSS ) لحماية نفسها من الهجمات الأمنية. وقد منعت هذه الممارسة التواصل بين الصفحات غير الضارة أيضًا، مما جعل التفاعل بين المستندات صعبًا للغاية. [ 1 ] [ 2 ] تتيح المراسلة بين المستندات للبرامج النصية التفاعل عبر هذه الحدود، مع توفير مستوى أساسي من الأمان.
المتطلبات والخصائص
باستخدام طريقة واجهة برمجة تطبيقات المراسلة postMessage، يمكن إرسال رسائل نصية عادية من نطاق إلى آخر، على سبيل المثال من مستند رئيسي إلى إطار مضمن (IFRAME) . [ 3 ] يتطلب هذا أن يحصل المُرسِل أولاً على Windowكائن المستند المُستقبِل. ونتيجةً لذلك، يمكن نشر الرسائل على ما يلي: [ 2 ]
- إطارات أخرى أو إطارات مضمنة داخل نافذة مستند المرسل
- يفتح برنامج Windows مستند المرسل بشكل صريح من خلال استدعاءات JavaScript
- النافذة الرئيسية لمستند المرسل
- النافذة التي فتحت مستند المرسل
تتضمن الرسالة eventالمستلمة السمات التالية:
data– البيانات، أو المحتوى الفعلي، للرسالة الواردة.origin– مصدر مستند المرسل. يتضمن هذا عادةً المخطط واسم المضيف والمنفذ. ولا يتضمن المسار أو مُعرّف الجزء. [ 1 ]source–WindowProxyمصدر المستند (نافذة المصدر).
postMessageلا يُعد هذا استدعاءً مانعًا؛ تتم معالجة الرسائل بشكل غير متزامن. [ 4 ]
مثال
لنفترض أننا نريد example.netأن يتواصل المستند A المحمّل من المصدر مع المستند B المحمّل من المصدر example.comالآخر في iframeنافذة منبثقة. [ 1 ] سيكون كود جافا سكريبت الخاص بالمستند A كما يلي:
var o = document.getElementsByTagName ( ' iframe' ) [ 0 ] ; o.contentWindow.postMessage ( 'Hello B' , ' http://example.com/ ' ) ;contentWindowيتم تمرير مصدر الكائن إلى الدالة postMessage. يجب أن يتطابق مع originمصدر المستند الذي نرغب في التواصل معه (في هذه الحالة، المستند B). وإلا، سيتم طرح خطأ أمني وسيتوقف البرنامج النصي. [ 3 ] سيبدو كود جافا سكريبت الخاص بالمستند B كما يلي:
دالة الاستقبال ( الحدث ) { إذا كان ( الحدث.الأصل == ' http://example.net' ) { إذا كان ( الحدث.البيانات == ' مرحباً ب' ) { الحدث.المصدر.نشر الرسالة ( ' مرحباً أ ، كيف حالك؟' , الحدث.الأصل ) ; } وإلا { تنبيه ( الحدث.البيانات ) ; } } } نافذة.إضافة مستمع حدث ( ' رسالة ' , الاستقبال , خطأ ) ;يتم إعداد مستمع للأحداث لاستقبال الرسائل من المستند أ. باستخدام الخاصية origin، يتحقق من أن نطاق المرسل هو النطاق المتوقع. ثم ينظر المستند ب إلى الرسالة، إما بعرضها للمستخدم، أو بالرد بدوره برسالة خاصة به للمستند أ. [ 1 ]
حماية
قد يُشكّل ضعف التحقق من مصدر الرسائل خطرًا على التطبيقات التي تستخدم المراسلة بين المستندات. [ 5 ] وللحماية من البرامج الضارة القادمة من نطاقات خارجية، ينبغي على المطورين التحقق من originالسمة للتأكد من قبول الرسائل من النطاقات التي يتوقعون استقبال الرسائل منها. كما ينبغي التحقق من تنسيق البيانات الواردة للتأكد من مطابقته للتنسيق المتوقع. [ 1 ]
يدعم
يدعم متصفح إنترنت إكسبلورر ، وموزيلا فايرفوكس ، وسفاري ، وجوجل كروم ، وأوبرا ، وأوبرا ميني ، وأوبرا موبايل ، ومتصفح أندرويد، خاصية المراسلة بين المستندات . [ 6 ] كما يدعم محركا تخطيط الصفحات ترايدنت ، وجيكو ، وويب كيت، وبريستو هذه الخاصية . [ 7 ]
انظر أيضاً
مراجع
- 1 2 3 4 5 6 المراسلة بين المستندات - مسودة معيار HTML
- 1 2 " مواضيع برمجة WebKit DOM - المراسلة بين المستندات " . مؤرشف من الأصل بتاريخ 2012-06-09 . تم الاطلاع عليه بتاريخ 2013-12-29 .
- 1 2 ريمي، شارب، الرسائل، والعمال، والمآخذ ، مقدمة إلى HTML5 ، نيو رايدرز، 2011، ص 197-199
- ↑ "المراسلة عبر الويب باستخدام HTML5" .
- ↑ أمان HTML5 باختصار
- ↑ متى يمكنني استخدام المراسلة بين المستندات؟
- ↑ " مجموعة مختارة من الميزات المدعومة في HTML5 " . مؤرشف من الأصل بتاريخ 12-11-2011 . تم الاطلاع عليه بتاريخ 18-04-2011 .
روابط خارجية
- توصية بشأن مراسلة الويب باستخدام HTML5
- مواصفات مراسلة الويب HTML5، مؤرشفة بتاريخ 24 ديسمبر 2010 على موقع Wayback Machine.
- المراسلة بين المستندات - معيار مسودة HTMLWHATWG
- مواضيع برمجة WebKit DOM - المراسلة بين المستنداتمكتبة مطوري أبل، مؤرشفة من الأصل بتاريخ 9 يونيو 2012 ، تم استرجاعها بتاريخ 29 ديسمبر 2013
- إنج، كريس (17-05-2010)،أمان HTML5 باختصارفيراكود
- متى يمكنني استخدام خاصية المراسلة بين المستندات؟، هل يمكنني استخدام
- مجموعة مختارة من الميزات المدعومة في HTML5تمت أرشفة هذا النص من المصدر الأصلي بتاريخ 12 نوفمبر 2011 ، وتمت معاينته بتاريخ 18 أبريل 2011.
- HTML
- واجهات برمجة التطبيقات
