در حال بارگذاری...
تست امنیت Web Messaging (postMessage) برای اطمینان از اینکه ارتباط بین iframeها و پنجرهها امن است.
اهداف این درس
Web Messaging (postMessage) مکانیزمی است که به اسکریپتها اجازه میدهد بین iframeها و پنجرهها ارتباط برقرار کنند. این مکانیزم برای ارتباط cross-origin استفاده میشود.
مکانیزم ارتباط بین iframeها و پنجرهها با استفاده از postMessage.
| آسیبپذیری | توضیح | تأثیر |
|---|---|---|
| عدم بررسی origin | پذیرش پیام از هر مبدأ | سرقت داده |
| wildcard targetOrigin | ارسال به تمام پنجرهها | نشت داده |
| عدم اعتبارسنجی پیام | پذیرش پیام نامعتبر | اجرای کد |
استفاده از postMessage و addEventListener('message') را در کد شناسایی کنید.
1// ارسال امن2window.postMessage(data, 'https://trusted.com');34// دریافت امن5window.addEventListener('message', function(event) {6 if (event.origin !== 'https://trusted.com') {7 return;8 }9 // پردازش پیام10});هشدار
هرگز از wildcard (*) در targetOrigin استفاده نکنید. این کار داده را به تمام پنجرهها ارسال میکند.
توصیه عملی
همیشه origin پیام را قبل از پردازش بررسی کنید.
همیشه origin پیام را بررسی کنید.
از wildcard در targetOrigin استفاده نکنید.
پیامهای دریافتی را اعتبارسنجی کنید.
از HTTPS استفاده کنید.
کدام روش امنتر برای postMessage است؟
postMessage چیست؟
postMessage مکانیزمی است که به اسکریپتها اجازه میدهد بین iframeها و پنجرهها ارتباط برقرار کنند.
چرا بررسی origin مهم است؟
بدون بررسی origin، مهاجم میتواند از صفحه مخرب پیام ارسال کند.