অ্যাপ CSP

This translation is incomplete. Please help translate this article from English.

প্রিভিলেজড এবং সার্টিফাইড অ্যাপসমূহ সাধারণ ওয়েবসাইটের মত নয়। এগুলো স্বাভাবিকভাবেই CSP (content security policy) মেনে চলে। অ্যাপসমূহকে পোর্ট করার সময় CSP এর কারণে অ্যাপের কোডসমূহ মাঝে মাঝে পরিবর্তন হয়ে যায় এবং এই CSP সম্পর্কে জানা না থাকার কারনে ডেভেলপারদের মধ্যে যথেষ্ট পরিমাণ বিভ্রান্তির সৃষ্টি হয়।

যদি  অ্যাপ ম্যানিফেষ্টের মধ্যে CSP বর্ণনা করা থাকে, তবে বর্ণিত CSP সমূহ এবং ঐ ধরনের অ্যাপের জন্য সাধারণ CSP সমূহ যুক্ত হয়ে যাবে। তবে ঐ বর্ণিত CSP সমূহ কখনোই সাধারণ CSP সমূহের নিষেধাজ্ঞাকে অমান্য করতে পারবে না।

অ্যাপ জমাদান প্রক্রিয়ার সময় মার্কেটপ্লেস ভ্যালিডেটর CSP বিষয়ক নিয়ম লঙ্ঘনসমূহ পরীক্ষা করে দেখে। এই প্রক্রিয়াটি ডেভেলপমেন্টের প্রাথমিক পর্যায়ে সমস্যাগুলো খুজে পাওয়ার কাজে ব্যবহার করা যেতে পারে।

CSP এর জন্য প্রযোজ্য নিষেধাজ্ঞাসমূহ

রিমোট স্ক্রিপ্ট ব্যবহার করা যাবে না
আপনি কখনোই <script> দিয়ে একটি রিমোট জাভাস্ক্রিপ্ট ফাইল নির্দেশ করতে পারবেন না। এর মানে হচ্ছে আপনার অ্যাপের মধ্যে ব্যবহত সকল জাভাস্ক্রিপ্ট ফাইল অবশ্যই অ্যাপের প্যাকেজের মধ্যেই থাকতে হবে। অন্য কোন ডোমেইন থেকে রেফার করা যাবে না।
ইনলাইন স্ক্রিপ্ট ব্যবহার করা যাবে না
আপনি HTML এর মধ্যে ইনলাইন স্ক্রিপ্ট ব্যবহার করতে পারবেন না। সকল <script> ট্যাগের জন্য অবশ্যই একটি src="" অ্যাট্রিবিউট থাকতে হবে। onclick="" অথবা onload=""এর মত স্ক্রিপ্ট অ্যাট্রিবিউট গুলো ব্যবহার করা যাবে না। ডায়নামিকভাবে <script> তৈরি এবং তাদের innerHTML প্রোপার্টি ব্যবহার করে কোন কিছু অ্যাসাইন করা যাবে না।
javascript: URI সমূহ ব্যবহার করা যাবে না
<a href="javascript:alert('foo')"> এর মতো URI সমূহ কাজ করবে না।
eval ফাংশন ব্যবহার গ্রহণযোগ্য নয়
আপনি অবশ্যই eval() ফাংশন অথবা eval অপারেটর ব্যবহার করতে পারবেন না। উভয় ক্ষেত্রেই নিরাপত্তাজনিত ত্রুটি প্রদর্শিত হবে।
ফাংশন কনস্ট্রাক্টর ব্যবহার করা যাবে না
আপনি অবশ্যই Function() কনস্ট্রাক্টর যবহার করতে পারবেন না। এটি ব্যবহার করলে নিরাপত্তাজনিত ত্রুটি প্রদর্শিত হবে।
setTimeout এবং setInterval দ্বারা ডায়নামিক কোড সম্পাদনা করা যাবে না
ডাকার যোগ্য (কলেবল) অবজেক্টসমূহ (যেমন: ফাংশন) কে অবশ্যই setTimeout এবং setInterval ফাংশনের মধ্য দিয়ে পাঠাতে হবে। তবে স্ট্রিং পাঠালে কোন টাইমার তৈরি হবে না এবং ফাংশনটিও ০ রিটার্ন করবে।
রিমোট Web Workers ব্যবহার করা নিষেধ
যদি কোন Worker অথবা SharedWorker, রিমোট URL দিয়ে তৈরি করা হয়, তবে এটি এমনভাবে আচরণ করবে যেন রিমোট সার্ভার একটি 400 error দিচ্ছে বলে মনে হবে।
Script tags may not be created with remote URLs
যদি  document.createElement() এর মাধ্যমে  src অ্যাট্রিবিউটকে কোন রিমোট URL হিসাবে রেখে <script>  ট্যাগ তৈরি করা হয় তবে এটি এমনভাবে আচরণ করবে যেন রিমোট সার্ভার একটি 400 error দিচ্ছে বলে মনে হবে।
প্লাগিন ব্যবহার করা যাবে না
<object> এবং <embed> ট্যাগসমূহ গ্রহণযোগ্য নয়। জাভা, ইউনিটি, সিলভারলাইট, ফ্ল্যাশ অথবা শকওয়েভ ব্যবহার করা ঠিক হবে না।
রিমোট styles ব্যবহার করা যাবে না
সকল <link rel="stylesheet" href="..."> ট্যাগকে অবশ্যই অ্যাপ প্যাকেজের মধ্যে থাকা ফাইলকে নির্দেশ করতে হবে। ইনলাইন স্টাইল ট্যাগ এবং অ্যাট্রিবিউট (<style> এবং style="") ব্যবহার করা যাবে, তবে এটি শুধুমাত্র প্রিভিলেজড অ্যাপের জন্য প্রযোজ্য।

সার্টিফাইড অ্যাপ নিষেধাজ্ঞাসমূহ

সার্টিফাইড অ্যাপ সমূহের জন্য অতিরিক্ত কিছু নিষেধাজ্ঞা আছে।

ইনলাইন স্টাইল ব্যবহার করা যাবে না
<style> এবং style="" উভয়েই নিষিদ্ধ।

সাধারণ নিয়মসমূহ

অ্যাপের জন্য সাধারণ নিয়মসমূহ নিম্নরূপ:

প্রিভিলেজড CSP
default-src *; script-src 'self'; object-src 'none'; style-src 'self' 'unsafe-inline'
সার্টিফাইড CSP
default-src *; script-src 'self'; object-src 'none'; style-src 'self'

সাধারণ সমস্যা এবং সচরাচর জিজ্ঞাসিত প্রশ্নাবলি

jQuery ব্যবহার করতে গেলেই আমার প্রিভিলেজড অ্যাপটি এরর দেখাচ্ছে।
আপনার অ্যাপটি যদি jQuery CDN এর সাথে লিংক করা থাকে, তবে আপনার কোড CSP কে লঙ্ঘন করে। এটা নিশ্চিত করুন যেন jQuery এর কপিটি আপনার অ্যাপ প্যাকেজের মধ্যেই থাকে এবং স্ক্রিপ্ট ট্যাগের src="" অ্যাট্রিবিউটের মধ্যে এটিকে লিংক করে দিন।
আমার প্রিভিলেজড অ্যাপের মধ্যে আমার টেমপ্লেট গুলো দেখা যাচ্ছে না।
If you're using a client-side templating library (such as Mustache or Nunjucks), you must ensure that you're precompiling your templates. This means that you must run a script to compile your templates from HTML to JavaScript before packaging your app. Privileged apps cannot use remote loaders that download and compile templates on the fly because the compiler uses eval() or new Function().
I set the CSP in my manifest to allow the use of [feature], but it still doesn't work.
You cannot loosen the default restrictions on privileged or certified packaged apps. The CSP field in the app manifest can only be used to tighten the CSP, not loosen it.
When I use certain jQuery methods, they don't work as expected. Why?
Some jQuery methods--such as those that load JSON-P and remote HTML--can violate the CSP. Code loaded via JSON-P injects a script tag onto the current page, which violates the CSP. You should use CORS-enabled APIs instead of JSON-P. jQuery will also try to download and execute remote scripts when using methods like load() and html(), which will also violate the CSP by creating <script> tags.
I need to run code that is loaded from an external domain, but can't because it's blocked by the CSP.
Try loading the code inside a remote or data:-URI <iframe> instead, and use postMessage() to send and receive messages to the script. Iframes that do not share your app's origin are not subject to the CSP.
আমার হোভার এবং ক্লিক ইভেন্টসমূহ কাজ করে না কেন?
If you're setting click or mouse event handlers with onclick="" or onmouseover="", your code violates the CSP. You cannot set event attributes in a privileged packaged app. You should use addEventListener() instead.
When I submit my packaged app to the Marketplace, I get a lot of CSP warnings. Why?
The Marketplace's validator tries to detect code which would otherwise violate the CSP. It produces these warnings whether your app is privileged or not. These are intended to help point out potential CSP violations to developers and Marketplace reviewers. In many cases, the CSP warnings are false positives, but can also provide useful feedback for improving your app's code. CSP violations sometimes indicate a lax coding style and can be used as a means of checking your work.

CSP warnings in the validator will NOT impact whether your app is accepted into the Marketplace. If your app is privileged and it does violate the CSP, however, you will be asked to fix this issue before your app is accepted.

একই ধরনের আরো তথ্য

ডকুমেন্ট ট্যাগ এবং অবদানকারী

 Contributors to this page: anistuhin
 সর্বশেষ হালনাগাদ করেছেন: anistuhin,