1 مرفق
الحماية والحظر سياسة أمان المحتوى CSP Content Security Policy - الكوردوفا و الفون جاب
الحماية Whitelist والحظر Blocking سياسة أمان المحتوى CSP Content Security Policy - الكوردوفا و الفون جاب
الكوردوفا و الفون جاب Phone Gap / Cordova
شرح الميتا CSP المسئولة عن الحماية / السكيورتي / الصلاحيات / الحظر لوظائف التطبيق
قد تجد انك قمت بتنزيل بلوجن plugin وعند وضع فنكشن function لا تجده يعمل !!!
جميع وظائف api للجافا سكربت داخل index.html او داخل index.js
محظوره و السبب هو كود ميتا Meta
كود:
<meta http-equiv="Content-Security-Policy" content="default-src 'self' data: gap: https://ssl.gstatic.com 'unsafe-eval'; style-src 'self' 'unsafe-inline'; media-src *; img-src 'self' data: content:;">
الوصف :
يوضح هنا ان هناك 3 اشياء تفعلها هذه الميتا ,
الاول هو مخاطبة الجافا سكربت مع لغة الاندرويد النيتف
الثانى هو مخاطبة سكربت مع لغة الاى فون النيتف
الثالث هو تعطيل استخدام البلوجن من أجل الحماية
كود:
<!--
Customize this policy to fit your own app's needs. For more guidance, see:
https://github.com/apache/cordova-plugin-whitelist/blob/master/README.md#content-security-policy
Some notes:
* gap: is required only on iOS (when using UIWebView) and is needed for JS->native communication
* https://ssl.gstatic.com is required only on Android and is needed for TalkBack to function properly
* Disables use of inline scripts in order to mitigate risk of XSS vulnerabilities. To change this:
* Enable inline JS: add 'unsafe-inline' to default-src
-->
الكود المسئول عن حظر البلوجن / السكربت :
كود:
<meta http-equiv="Content-Security-Policy" content="default-src 'self' data: gap: https://ssl.gstatic.com 'unsafe-eval'; style-src 'self' 'unsafe-inline'; media-src *; img-src 'self' data: content:;">
https://www.rise.company/forum/image...017/07/181.jpg
ما هو self ؟
هو السماح بتحميل res من المخطط الاصلى فقط
ما هو unsafe-inline ؟
هو السماح بتحميل res من اى مكان
ما هو unsafe-eval ؟
هو السماح للجافا سكربت بمخاطبة الاندرويد النيتف
ما هو gap ؟
هو السماح للجافا سكربت بمخاطبة الاى فون النيتف
ما هو https://ssl.gstatic.com ؟
هو مهام TalkBack (accessibility) الموجودة فى الاندرويد النيتف
الكود المعدل المناسب لكك للعمل بدون قيود :
هو ان تضيف للكود الاساسى لك
كود:
script-src * 'unsafe-inline';
ليكون كالتالى
كود:
<meta http-equiv="Content-Security-Policy" content="
default-src *;
style-src * 'unsafe-inline';
script-src * 'unsafe-inline';
media-src *; img-src * data:;
" />
كما يمكنك حذف السطر نهائيا فسيعمل التطبيق بشكل ممتاز دون مشاكل
ولكن لا نعلم ان كان سيتوقف عند النشر على المتجر ام لا.
اقتباس:
This policy allows images, scripts, AJAX, and CSS from the same origin, and does not allow any other resources to load (eg object, frame, media, etc).
المرجع :
https://content-security-policy.com/
جميع الاكواد فى المرفقات