"কোনও সামগ্রী-সুরক্ষা-নীতিমালা মেটা ট্যাগ পাওয়া যায় নি।" আমার ফোনগ্যাপ অ্যাপ্লিকেশনটিতে ত্রুটি


94

আমার সিস্টেমে কর্ডোভা 5.0 আপডেট করার পরে, আমি নতুন অ্যাপ্লিকেশন তৈরি করি। যখন আমি কোনও ডিভাইসে আমার অ্যাপ্লিকেশন পরীক্ষা করেছি তখন কনসোল লগটিতে ত্রুটি পাই:

No Content-Security-Policy meta tag found.
Please add one when using the Cordova-plugin-whitelist plugin.: 23.

আমি মাথা বিভাগে মেটা যুক্ত করি

<meta http-equiv="Content-Security-Policy" content="default-src *; style-src 'self' 'unsafe-inline'; script-src: 'self' 'unsafe-inline' 'unsafe-eval'>

তবে আবারও, আমি একই ত্রুটি পেয়েছি, অ্যাপ্লিকেশনটিতে আমি অ্যাপ্লিকেশনটিতে ব্রাউজার প্লাগইন এবং অন্যান্য ওয়েবসাইটের 7 টি লিঙ্ক ব্যবহার করি।


4
আপনি কি cordova-plugin-whitelist- github.com/apache/cordova-plugin-Hitelist প্লাগইনটি সঠিকভাবে ইনস্টল করেছেন ? এর পরে, আপনি যোগ করতে হবে <allow-navigation href="http://*/*" />আপনার টু config.xml
Keval

4
ধন্যবাদ কেভাল, <অনুমতি-নেভিগেশন href = "http: // * / *" /> যোগ করার পরে এখন আমার আবেদনটি ঠিকঠাক কাজ করে। আবার ধন্যবাদ।


4
একটি অক্ষর কোডটিতে অনুপস্থিত থাকা অবস্থায় একটি ত্রুটি তৈরি করা যেতে পারে, তখন এসও ছয়টি অক্ষরের চেয়ে কম সম্পাদনাগুলিকে কেন অনুমতি দেয় না? এটির সমাধান করা বেশ সহজ, এটি ভবিষ্যতে কয়েক সেকেন্ডের মধ্যে কেবল অন্য কাউকে বাঁচানোর চেষ্টা করছিল। মেটা ট্যাগের সামগ্রীর বৈশিষ্ট্যের শেষে একটি ডাবল উদ্ধৃতি নেই।
জেসন ডি

উত্তর:


86

কর্ডোভা-প্লাগইন-শ্বেত তালিকা যুক্ত করার পরে , আপনি যদি নিজের কাছে নির্দিষ্ট রাখতে চান তবে আপনাকে অবশ্যই সমস্ত অ্যাপ্লিকেশনকে ওয়েব পৃষ্ঠার লিঙ্কগুলি বা নির্দিষ্ট লিঙ্কগুলিতে অ্যাক্সেসের অনুমতি দেওয়ার জন্য বলতে হবে।

আপনি এটিকে কেবল আপনার কনফিগার.এক্সএমএলে যোগ করতে পারেন যা আপনার অ্যাপ্লিকেশনটির মূল ডিরেক্টরিতে পাওয়া যাবে:

ডকুমেন্টেশনে প্রস্তাবিত :

<allow-navigation href="http://example.com/*" />

বা:

<allow-navigation href="http://*/*" />

প্লাগইন এর ডকুমেন্টেশন থেকে:

নেভিগেশন শ্বেত তালিকা

ওয়েবভিউ নিজেই কোন ইউআরএল এ নেভিগেট হতে পারে তা নিয়ন্ত্রণ করে। কেবলমাত্র শীর্ষ-স্তরের নেভিগেশনের ক্ষেত্রে প্রযোজ্য।

Quirks: অ্যান্ড্রয়েডে এটি নন-টি-পি-পি (গুলি) এর স্কিমগুলির জন্য আইফ্রেমেও প্রযোজ্য।

ডিফল্টরূপে, কেবল ফাইল: // URL- এ ফাইল নেভিগেশন অনুমোদিত। অন্যান্য অন্যান্য ইউআরএলকে অনুমতি দেওয়ার জন্য আপনার কনফিগারেশন.এমএমএলে আপনাকে ট্যাগ যুক্ত করতে হবে:

<!-- Allow links to example.com -->
<allow-navigation href="http://example.com/*" />

<!-- Wildcards are allowed for the protocol, as a prefix
     to the host, or as a suffix to the path -->
<allow-navigation href="*://*.example.com/*" />

<!-- A wildcard can be used to whitelist the entire network,
     over HTTP and HTTPS.
     *NOT RECOMMENDED* -->
<allow-navigation href="*" />

<!-- The above is equivalent to these three declarations -->
<allow-navigation href="http://*/*" />
<allow-navigation href="https://*/*" />
<allow-navigation href="data:*" />


38

আপনার অ্যাপ্লিকেশনগুলির প্রধান বিভাগে আপনাকে একটি সিএসপি মেটা ট্যাগ যুক্ত করতে হবে index.html

অনুযায়ী https://github.com/apache/cordova-plugin-whitelist#content-security-policy

সামগ্রী সুরক্ষা নীতি

কোন নেটওয়ার্ক অনুরোধগুলি (চিত্রগুলি, এক্সএইচআরগুলি, ইত্যাদি) তৈরি করার অনুমতি দেওয়া হয়েছে তা নিয়ন্ত্রণ করে (সরাসরি ওয়েবভিউয়ের মাধ্যমে)।

অ্যান্ড্রয়েড এবং আইওএস-এ, নেটওয়ার্ক অনুরোধ শ্বেত তালিকা (উপরে দেখুন) সমস্ত ধরণের অনুরোধগুলি ফিল্টার করতে সক্ষম নয় (যেমন <video>& ওয়েবসকেটগুলি ব্লক করা হয়নি)। সুতরাং, শ্বেতলিস্টের পাশাপাশি, আপনার সমস্ত পৃষ্ঠায় একটি সামগ্রী সুরক্ষা নীতি <meta> ট্যাগ ব্যবহার করা উচিত ।

অ্যান্ড্রয়েডে, সিস্টেম ওয়েবভিউয়ের মধ্যে সিএসপির জন্য সমর্থন কিটকাট দিয়ে শুরু হয় (তবে ক্রসওয়াক ওয়েবভিউ ব্যবহার করে সমস্ত সংস্করণে পাওয়া যায়)।

আপনার .htmlপৃষ্ঠাগুলির জন্য এখানে সিএসপি ঘোষণার কয়েকটি উদাহরণ রয়েছে :

<!-- Good default declaration:
    * 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 eval() and inline scripts in order to mitigate risk of XSS vulnerabilities. To change this:
        * Enable inline JS: add 'unsafe-inline' to default-src
        * Enable eval(): add 'unsafe-eval' to default-src
-->
<meta http-equiv="Content-Security-Policy" content="default-src 'self' data: gap: https://ssl.gstatic.com; style-src 'self' 'unsafe-inline'; media-src *">

<!-- Allow requests to foo.com -->
<meta http-equiv="Content-Security-Policy" content="default-src 'self' foo.com">

<!-- Enable all requests, inline styles, and eval() -->
<meta http-equiv="Content-Security-Policy" content="default-src *; style-src 'self' 'unsafe-inline'; script-src 'self' 'unsafe-inline' 'unsafe-eval'">

<!-- Allow XHRs via https only -->
<meta http-equiv="Content-Security-Policy" content="default-src 'self' https:">

<!-- Allow iframe to https://cordova.apache.org/ -->
<meta http-equiv="Content-Security-Policy" content="default-src 'self'; frame-src 'self' https://cordova.apache.org">

আমি যখন সিএসপি ঘোষণাটি যুক্ত করি তখন গুগল ম্যাপের জন্য নিম্নলিখিত কোডের কোডটি ব্যর্থ হয়। কোন ধারণা ? var pos = নতুন google.maps.LatLng (পজিশনওয়ার্ডস.লিটটিউড, পজিশনওয়ার্ডস.লম্বনটিড); // লাইন 173 11-09 21: 17: 30.724: ডি / সিস্টেমওয়েব ক্রোমাইক্লিন্ট (25692): ফাইল: ///android_asset/www/index.html: লাইন 173: অপরিবর্তিত রেফারেন্স এরর: গুগল সংজ্ঞায়িত হয়নি
শম্যালয়েট

4
আমার স্বীকৃতি পেতে /> এর সাথে মেটা ট্যাগগুলি বন্ধ করতে হবে
মেটাামিকুম

23

আপনার মেটা ট্যাগে ত্রুটি রয়েছে।

ইতি:

<meta http-equiv="Content-Security-Policy" content="default-src *; style-src 'self' 'unsafe-inline'; script-src: 'self' 'unsafe-inline' 'unsafe-eval'>

সংশোধিত:

<meta http-equiv="Content-Security-Policy" content="default-src *; style-src 'self' 'unsafe-inline'; script-src 'self' 'unsafe-inline' 'unsafe-eval'"/>

"স্ক্রিপ্ট-এসসিআর" এর পরে কোলন এবং মেটা ট্যাগের শেষ ডাবল উদ্ধৃতিটি নোট করুন।


4
আমি যখন <meta http-equiv="Content-Security-Policy" content="default-src *; style-src 'self' 'unsafe-inline'; script-src 'self' 'unsafe-inline' 'unsafe-eval'"/>আয়নিক কাঠামোর সাথে লাইভ পুনরায় লোড অন্তর্ভুক্ত করি তখন কাজ করা বন্ধ করে দেয় তাই অন্যদের থেকে সাবধান থাকুন
CommonSenseCode

অয়নিক লাইভরলোডটি আবার সক্রিয় করতে @ কোড কোডপ্লাস প্লাস করুন http://localhost:35729, স্ক্রিপ্ট-স্ক্রির নির্দেশিকাতে এবং ws://localhost:35729সংযুক্ত- এসসিআর নির্দেশিকায় যুক্ত করুন।
কলি

@ কলি, আপনি কি নতুন দিকনির্দেশগুলি দেখতে পাবেন? নির্দেশাবলীগুলিতে কীভাবে তাদের যুক্ত করা যায় তা পরিষ্কার নয়।
jessewolfe

আমি দেখি তথ্যটি মূল পোস্টে রয়েছে। কিন্তু নির্মল: উল্লেখ্য যে 'যোগ', এই উপায়ে আপনি প্রতিস্থাপন করতে পারেন script-src 'self' 'unsafe-inline' 'unsafe-eval'সঙ্গে script-src 'self' http://localhost:35279 'unsafe-inline' 'unsafe-eval'এবং আপনি একটি নতুন নির্দেশ একটি পৃথক সেমিকোলন সন্তুষ্ট অ্যাট্রিবিউট শেষে যোগ হবে:; script-src ws://localhost:35279
jessewolfe

উপরের সংশোধন ... দ্বিতীয় অংশের জন্য, এটি হওয়া উচিত ; connect-src 'self' ws://localhost:35279। নোট করুন যে আমি 'স্ব' যুক্ত না করা পর্যন্ত আমি একটি ত্রুটি পেয়েছি (সিএসপি লঙ্ঘনের কারণে ফাইল: // <সূচি html> -এ প্রবেশ করা যায়নি) getting
jessewolfe

2

আমার জন্য এটি শ্বেতলিস্ট প্লাগইন পুনরায় ইনস্টল করার জন্য যথেষ্ট ছিল :

cordova plugin remove cordova-plugin-whitelist

এবং তারপর

cordova plugin add cordova-plugin-whitelist

দেখে মনে হচ্ছে কর্ডোভার আগের সংস্করণগুলি থেকে আপডেট করা সফল হয়নি।


1

আমার জন্য সমস্যাটি ছিল আমি কর্ডোভা অ্যান্ড্রয়েড এবং আইওএস প্ল্যাটফর্মগুলির অপ্রচলিত সংস্করণগুলি ব্যবহার করছিলাম । সুতরাং android@5.1.1 এবং ios@4.0.1 এ আপগ্রেড করা এটি সমাধান করেছে।

আপনি এই নির্দিষ্ট সংস্করণে আপগ্রেড করতে পারেন:

cordova platforms rm android
cordova platforms add android@5.1.1
cordova platforms rm ios
cordova platforms add ios@4.0.1

আপনি কি অ্যান্ড্রয়েড 5.1.1 বলতে চান ?
মিশন 3 ডি

আমি @ ম্যাক্সিম এবং পিয়েরে-আলেক্সিস ডি সোলমিনিহাক পরামর্শ উভয়কেই অনুসরণ করেছি এবং আমার অ্যাপটি শেষ পর্যন্ত ভালভাবে কাজ করতে পেরেছি। ধন্যবাদ!
জালাকাইন

0

সংযোগ সম্পর্কে আরও একটি সমস্যা আছে। কিছু অ্যান্ড্রয়েড সংস্করণ সংযোগ করতে পারে তবে কিছু করতে পারে না। সুতরাং অন্য একটি সমাধান আছে

AndroidManLive.xML এ:

<application ... android:usesCleartextTraffic="true">
        ...
    </application>

স্রেফ 'অ্যান্ড্রয়েড যুক্ত করুন: CCltetextTraffic = "সত্য" "

এবং অবশেষে সমস্যার সমাধান solved

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.