স্ক্রিপ্টটি লোড করতে অস্বীকার করেছেন কারণ এটি নিম্নলিখিত সামগ্রী সুরক্ষা নীতি নির্দেশকে লঙ্ঘন করে


107

আমি যখন 5.0.0 ( ললিপপ) এর উপরে অ্যান্ড্রয়েড সিস্টেম সহ ডিভাইসে আমার অ্যাপ্লিকেশনটি স্থাপন করার চেষ্টা করেছি ) এর এই ধরণের ত্রুটি বার্তা পেতে থাকি:

07-03 18: 39: 21.621: D / SystemWebChromeClient (9132): ফাইল: ///android_asset/www/index.html: লাইন 0: 'http: // xxxxx' স্ক্রিপ্টটি লোড করতে অস্বীকার করেছে কারণ এটি নিম্নলিখিত সামগ্রীটিকে লঙ্ঘন করে সুরক্ষা নীতি নির্দেশনা: "স্ক্রিপ্ট-এসআরসি '' স্ব '' অনিরাপদ-ইভাল '' অনিরাপদ-ইনলাইন '"। 07-03 18: 39: 21.621: আই / ক্রোমিয়াম (9132): [তথ্য: কনসোল (0)] "'http: // xxx' স্ক্রিপ্টটি লোড করতে অস্বীকার করেছে কারণ এটি নিম্নলিখিত বিষয়বস্তুর সুরক্ষা নীতি নির্দেশনা লঙ্ঘন করেছে:" স্ক্রিপ্ট- src 'স্ব' 'অনিরাপদ-ইভাল' 'অনিরাপদ-ইনলাইন' "।

তবে, আমি যদি এটিকে 4.4.x ( কিটকাট ) অ্যান্ড্রয়েড সিস্টেমের সাথে মোবাইল ডিভাইসে স্থাপন করি তবে সুরক্ষা নীতিটি ডিফল্টগুলির সাথে কাজ করে:

<meta http-equiv="Content-Security-Policy" content="default-src 'self' data: gap: https://ssl.gstatic.com 'unsafe-inline' 'unsafe-eval'; style-src 'self' 'unsafe-inline'; media-src *">

তারপরে আমি ভাবলাম, সম্ভবত, আমার এই জাতীয় কিছুতে পরিবর্তন হওয়া উচিত:

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

মূলত, দুটি বিকল্পই আমার পক্ষে কাজ করে না। আমি কীভাবে এই সমস্যাটি সমাধান করতে পারি?


আমার ইস্যুর সাথে খুব মিল similar আমি একটি JSON ফাইল পুনরুদ্ধার করতে অক্ষম, "কারণ এটি নিম্নলিখিত বিষয়বস্তু সুরক্ষা নীতি নির্দেশনা লঙ্ঘন করে:" কানেক্ট-এসসিআর 'স্ব' ""
মাইকেল আর

4
@ মিশেলআর আপনি যদি টেম্পারমনকি অ্যাডন বা অন্য কিছুর মতো জেএস এর মাধ্যমে এপিআই থেকে কিছু জেএসএন তথ্য পুনরুদ্ধার করতে চান তবে আপনি এই প্লাগইনটি chrome.google.com/webstore/detail/disable-contete- সুরক্ষা/… ব্যবহার করতে পারেন এবং সিএসপি চেক নিষ্ক্রিয় করতে পারেন যখন আপনি চান কিছু। এটি নিরাপদ নয় তবে কিছু ক্ষেত্রে এটি কার্যকর হতে পারে। আমি এই উত্তরটি এখানে পোস্ট করছি কারণ আমি আমার ত্রুটিটি খুঁজছিলাম এবং এই বিষয়টি গুগলে প্রথম প্রদর্শিত হয়।
এরিক র্রবেল

উত্তর:


68

নীচে এটি দিয়ে আপনার মেটা ট্যাগটি প্রতিস্থাপনের চেষ্টা করুন:

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

অথবা আপনার যা আছে তা ছাড়াও আপনার এবং http://*উভয়ই যুক্ত করা উচিতstyle-srcscript-src উপরে 'স্ব' পরে যুক্ত ।

যদি আপনার সার্ভারটি Content-Security-Policyশিরোলেখ সহ অন্তর্ভুক্ত থাকে তবে শিরোনামটি মেটা ওভাররাইড করবে।


6
আমি যেমন সিএসপি বুঝেছি আপনি এখানে সংজ্ঞায়িত করেছেন আক্রমণ থেকে বাঁচতে সমস্ত ধরণের সুরক্ষা অক্ষম করে , স্ক্রিপ্ট ট্যাগগুলিকে মঞ্জুরি দেয় এবং কোনও ডোমেন থেকে স্ক্রিপ্টগুলি লোড করে এবং অনিরাপদ সংযোগও দেয়। ডেভেলপারস google.com/web/fundamentals/security/csp দেখুন বা আমি এস.টি. ভুল? আমি অনুমান করব যে বেশিরভাগ ক্ষেত্রে (উন্নয়ন এবং ডিবাগিং বাদে) আপনি যা চান তা তাই নয় ... তাই না?
পিটার টি।


11
আমি এই উত্তরটি হ্রাস করব, কারণ আপনি '' অনিরাপদ-ইনলাইন '' 'অনিরাপদ-ইভাল' 'ব্যবহার করার পরামর্শ দিচ্ছেন, যা সিএসপি ব্যবহার করার সময় আপনার উচিত হবে না!
হার্টেসলা

39

স্ব MagngooSasa কর্তৃক প্রদত্ত উত্তর কৌতুক করেনি, কিন্তু অন্য কেউ কি উত্তর বোঝার চেষ্টা জন্য, এখানে কয়েক বিট আরো বিস্তারিত:

ভিজ্যুয়াল স্টুডিওতে কর্ডোভা অ্যাপ্লিকেশনগুলি বিকাশ করার সময়, আমি একটি দূরবর্তী জাভাস্ক্রিপ্ট ফাইল [এখানে অবস্থিত http://Guess.What.com/MyScript.js] আমদানির চেষ্টা করেছি, তবে শিরোনামে উল্লিখিত ত্রুটি আমার আছে।

এই প্রকল্পের সূচক। Html ফাইলটিতে আগে মেটা ট্যাগ এখানে রয়েছে :

<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 *">

একটি দূরবর্তী স্ক্রিপ্ট আমদানি করার জন্য এখানে সংশোধিত মেটা ট্যাগ দেওয়া আছে:

<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 *;**script-src 'self' http://onlineerp.solution.quebec 'unsafe-inline' 'unsafe-eval';** ">

আর আর ত্রুটি!


15

এটি দিয়ে সমাধান করা হয়েছিল:

script-src 'self' http://xxxx 'unsafe-inline' 'unsafe-eval';

47
আপনি দয়া করে এটি আরও কিছু ব্যাখ্যা করতে পারেন? আপনি কি পুরো মেটা পেস্ট করতে পারেন?
টনি

4
@ অডিওসর এখানে রেফারেন্স বিকাশকারী.ক্রোম
এক্সটেনশানস

4
এটি কার্যকরভাবে যে কোনও দূষিত প্লাগইন / এক্সএসএসকে ইনলাইন এবং বিভক্ত স্ক্রিপ্টগুলি ইনজেক্ট করার অনুমতি দিয়ে স্ক্রিপ্টগুলির জন্য সিএসপি অক্ষম করে, যা সিএসপি একেবারেই সক্ষম করার পুরো উদ্দেশ্যকে পরাস্ত করে।
অবিশ্বাস্য

8

যে কোনও সম্পূর্ণ ব্যাখ্যা খুঁজছেন, তার জন্য আমি আপনাকে বিষয়বস্তু সুরক্ষা নীতিটি একবার দেখার পরামর্শ দিই: https://www.html5rocks.com/en/tutorials/security/content-security-policy/

"থেকে কোড Https://mybank.com কোডটিতে কেবলমাত্র https://mybank.com এর ডেটা অ্যাক্সেস থাকা উচিত এবং https://evil.example.com অবশ্যই কখনও অ্যাক্সেসের অনুমতি দেওয়া উচিত নয় Each প্রতিটি উত্স থেকে পৃথক পৃথক রাখা হয় ওয়েব বাকি "

এক্সএসএস আক্রমণগুলি আপনার ওয়েবসাইটের কোডটিকে অন্য ওয়েবসাইট থেকে ডাউনলোড করা কোড থেকে আলাদা করতে ব্রাউজারের অক্ষমতার উপর ভিত্তি করে। সুতরাং আপনাকে Content-Security-PolicyHTTP শিরোলেখ ব্যবহার করে যে বিষয়বস্তুর উত্সটি নিরাপদ হিসাবে বিবেচনা করেছেন সেগুলি থেকে হোয়াইটলিস্ট করতে হবে ।

এই নীতিটি একাধিক নীতি নির্দেশিকা ব্যবহার করে বর্ণিত হয়, যার প্রত্যেকটি একটি নির্দিষ্ট সংস্থার ধরণ বা নীতি ক্ষেত্রের জন্য নীতি বর্ণনা করে। আপনার নীতিতে কোনও ডিফল্ট-এসসিআর নীতি নির্দেশনা অন্তর্ভুক্ত করা উচিত, যা অন্য সংস্থানগুলির ধরণের যখন তাদের নিজস্ব নীতি না থাকে তখন ফলব্যাক হয়।

সুতরাং, আপনি যদি আপনার ট্যাগটি এখানে পরিবর্তন করেন:

<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 *;**script-src 'self' http://onlineerp.solution.quebec 'unsafe-inline' 'unsafe-eval';** ">

আপনি বলছেন যে আপনি জাভ্যাক্স্রিপ্ট কোড ( script-src) এর উত্স থেকে কার্যকর করার অনুমতি দিচ্ছেন 'self',http://onlineerp.solution.quebec , 'unsafe-inline', 'unsafe-eval'

আমার অনুমান যে প্রথম দুটি আপনার ব্যবহারের ক্ষেত্রে সঠিকভাবে বৈধ, আমি অন্যগুলি সম্পর্কে কিছুটা অনিশ্চিত। 'unsafe-line'এবং 'unsafe-eval'একটি সুরক্ষা সমস্যা সৃষ্টি করে, সুতরাং আপনার যদি তাদের খুব নির্দিষ্ট প্রয়োজন না হয় তবে এগুলি ব্যবহার করা উচিত নয়:

"যদি eval এবং এর পাঠ্য-থেকে-জাভাস্ক্রিপ্ট ভাইরা আপনার অ্যাপ্লিকেশনটির জন্য সম্পূর্ণ প্রয়োজনীয়, আপনি স্ক্রিপ্ট-সিআরসি নির্দেশিকায় অনুমতিপ্রাপ্ত উত্স হিসাবে 'অনিরাপদ-ইভাল' যোগ করে এগুলি সক্ষম করতে পারেন please তবে, দয়া করে তা করবেন না Ban নিষিদ্ধকরণ স্ট্রিংগুলি কার্যকর করার ক্ষমতা আক্রমণকারীটির পক্ষে আপনার সাইটে অননুমোদিত কোড চালানো আরও বেশি কঠিন করে তোলে। " (মাইক ওয়েস্ট, গুগল)


আমার লোকালহোস্ট পৃষ্ঠায় কেন আমি অন্য হোস্ট স্ক্রিপ্ট যুক্ত করতে পারি?
মিকলিটি

আপনার সার্ভারে হোস্ট করা নেই এমন তৃতীয় পক্ষের স্ক্রিপ্টগুলি পুনরায় ব্যবহার করা অস্বাভাবিক কিছু নয় তবে এতে আপনি "বিশ্বাস"
রোকেও গার্সিয়া লুক

8

সম্পূর্ণ অনুমতি স্ট্রিং

পূর্ববর্তী উত্তরগুলি আমার সমস্যাটিকে ঠিক করে নি, কারণ এগুলি blob: data: gap:একই সাথে কীওয়ার্ডগুলিকে অন্তর্ভুক্ত করে না ; সুতরাং এখানে একটি স্ট্রিং যা করে:

<meta http-equiv="Content-Security-Policy" content="default-src * self blob: data: gap:; style-src * self 'unsafe-inline' blob: data: gap:; script-src * 'self' 'unsafe-eval' 'unsafe-inline' blob: data: gap:; object-src * 'self' blob: data: gap:; img-src * self 'unsafe-inline' blob: data: gap:; connect-src self * 'unsafe-inline' blob: data: gap:; frame-src * self blob: data: gap:;">

সতর্কতা: এটি নথিটি বহু শোষণের জন্য প্রকাশ করে। কনসোলে কোড কার্যকর করতে বা কর্ডোভা অ্যাপ্লিকেশনের মতো বদ্ধ পরিবেশে থাকতে ব্যবহারকারীদের বাধা দেওয়ার বিষয়ে নিশ্চিত হন ।


4
আপনি যদি কনসোলে যেমন JQuery লোড করার চেষ্টা করছেন তবে এটি সঠিক উত্তর: stackoverflow.com/a/31912495/137948
উইল শেপার্ড

7

আমরা এটি ব্যবহার করেছি:

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

4

যুক্ত করে এ সম্পর্কে আরও কিছু ব্যাখ্যা করতে

script-src 'self' http://somedomain 'unsafe-inline' 'unsafe-eval';

মেটা ট্যাগ যেমন,

<meta http-equiv="Content-Security-Policy" content="default-src 'self' data: gap: https://ssl.gstatic.com 'unsafe-eval'; style-src 'self' 'unsafe-inline'; script-src 'self' https://somedomain.com/ 'unsafe-inline' 'unsafe-eval';  media-src *">

ত্রুটি সংশোধন করে


2

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

আমাদের ক্ষেত্রে আমরা টমক্যাট 9 জাভা-ভিত্তিক অ্যাপ্লিকেশনটির জন্য ওয়েব সার্ভার হিসাবে এনগনিক্স ব্যবহার করছি । ওয়েব সার্ভার থেকে, এটি ব্রাউজারকে অনুমতি না দেওয়ার জন্য নির্দেশ দিচ্ছে inline scripts, তাই একটি অস্থায়ী পরীক্ষার জন্য আমরা Content-Security-Policyমন্তব্য করে বন্ধ করে দিয়েছি ।

কীভাবে এটি এনজিক্সে বন্ধ করবেন

  • ডিফল্টরূপে, ngnix ssl.conf ফাইলটিতে এটি প্রতিক্রিয়াতে একটি শিরোনাম যোগ করবে:

    #> grep 'Content-Security' -ir /etc/nginx/global/ssl.conf add_header Content-Security-Policy "default-src 'none'; frame-ancestors 'none'; script-src 'self'; img-src 'self'; style-src 'self'; base-uri 'self'; form-action 'self';";

  • আপনি যদি এই লাইনটিতে কেবল মন্তব্য করেন এবং এনজিক্স পুনরায় চালু করেন তবে এটি প্রতিক্রিয়ায় শিরোনামটি যুক্ত করা উচিত নয়।

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


-1

আপনি কেন এই ত্রুটিটি পাচ্ছেন তার সম্ভাব্য কারণ সম্ভবত আপনি আপনার .gitignore ফাইলটিতে / বিল্ড ফোল্ডারটি যুক্ত করেছেন বা সাধারণত গিটটিতে এটি পরীক্ষা করেননি।

সুতরাং যখন আপনি গিট হেরোকু মাস্টারকে ধাক্কা দেবেন , আপনি যে বিল্ড ফোল্ডারটি উল্লেখ করছেন তা হেরোকুতে ঠেলাবেন না। এবং এই কারণেই এটি এই ত্রুটিটি দেখায়।

এ কারণেই এটি স্থানীয়ভাবে সঠিকভাবে কাজ করে তবে আপনি যখন হিরোকুতে নিযুক্ত হন তা নয়।


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