কীভাবে কেবল বুকমার্কলেটগুলির জন্য ফায়ারফক্সে সিএসপি অক্ষম করবেন?


26

আজ আমি লক্ষ্য করেছি যে সামগ্রী সুরক্ষা নীতি (সিএসপি) বিধিনিষেধের কারণে আমি https://github.com/ এ বুকমার্কলেট চালাতে অক্ষম । কেবলমাত্র বুকমার্কলেটগুলির জন্য ফায়ারফক্সে সিএসপি অক্ষম করার কোনও উপায় আছে, এবং সমস্ত কিছু নয়?

আমি security.csp.enableবিকল্পটি লক্ষ্য করেছি about:config, তবে এটি সিএসপি সম্পূর্ণরূপে অক্ষম করবে। নিম্নলিখিত বার্তাটি বুকমার্কলেট সক্রিয় করার সময় কনসোলটিতে লগ করা হয়েছে:

Timestamp: 04/22/2013 02:39:05 PM
Warning: CSP WARN:  Directive inline script base restriction violated

Source File: https://github.com/
Line: 0
Source Code:
javascript:...

উত্তর:


8

আপনি আপনার বুকমার্কলেটগুলি গ্রিজমনকি ব্যবহারকারীদের মধ্যে রূপান্তর করতে চেষ্টা করতে পারেন । এগুলি কোনও সুবিধাযুক্ত পরিবেশে চলে এবং তারা সিএসপির অধীন নয়।

তবে অবশ্যই ইউজার স্ক্রিপ্ট এবং বুকমার্কসলেটগুলির উদ্দেশ্যগুলি পৃথক - ইউজার স্ক্রিপ্টগুলি স্বয়ংক্রিয়ভাবে চালিত হয় বুকমার্কলেট অন-ডিমান্ডে থাকা অবস্থায়। আপনি এটি বন্ধ করতে পারেন উদাহরণস্বরূপ <button>ইউজার স্ক্রিপ্ট তৈরি করে, পৃষ্ঠায় সংযোজন এবং onclickবুকমার্কেটের কোডটি ফায়ার করতে সেই বোতামটিতে ইভেন্ট শ্রোতা সেট করে।

কোডটি এরকম হওয়া উচিত:

// ==UserScript==
// @name            Name
// @description     Description
// @version         0.1
// @namespace       example.Lekensteyn
// @grant           none
// @include         http*://github.com/*/*/commit/*
// ==/UserScript==

var myBookmarklet = function () {
    // here goes the code of the bookmarklet
};

var newButton = document.createElement('button');
newButton.innerHTML = 'Execute my bookmarklet';

newButton.addEventListener('click', function(evt) {
    myBookmarklet();
});

document.getElementById('someElement').appendChild(newButton);

আমার ইউজার স্ক্রিপ্ট থেকে প্রায় আক্ষরিক অর্থে নেওয়া হয়েছে যা গিটহাবকেও লক্ষ্য করে। আপনি debugger;স্ক্রিপ্টে কীওয়ার্ড ব্যবহার করে ফায়ারব্যাগে ব্যবহারকারীদের স্ক্রিপ্টগুলি ডিবাগ করতে পারেন ।

তবে নোট করুন যে ফায়ারব্যাগ নিজেই এখন সিএসপি সাপেক্ষে, সুতরাং আপনি উদাহরণস্বরূপ কনসোলে কোড সম্পাদন করতে পারবেন না (তবে আপনি "কেবল-পঠন" মোডে আপনার ব্যবহারকারী স্ক্রিপ্টগুলি পরিদর্শন করতে পারেন)। এই বাগে এটি যত্ন নেওয়া হচ্ছে ।


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

4
দুর্ভাগ্যক্রমে ফায়ারব্যাগ ফিক্স কেবলমাত্র ফায়ারবাগ ঠিক করবে fix সিএসপিতে গিথুব ব্লগ এন্ট্রি থেকে : সিএসপি স্পষ্ট দ্বারা স্পষ্ট করে দেওয়া হয়েছে, ব্রাউজার বুকমার্কসলেটগুলি সিএসপি দ্বারা প্রভাবিত হওয়া উচিত নয়। (..) তবে, ব্রাউজারগুলির কোনও এটিই সঠিক হয় না। সমস্ত সিএসপি লঙ্ঘনের কারণ এবং বুকমার্কলেটকে কাজ করা থেকে বিরত করে। সম্ভবত আপনার কেসটি আরও পুঙ্খানুপুঙ্খভাবে তদন্ত করা উচিত এবং বাগজিলায় একটি সমস্যার প্রতিবেদন করা উচিত।
jakub.g

2
বিটিডাব্লু আপনি জিএম_রেজিস্টারমেনুকম্যান্ড ব্যবহার করতে পারেন অন-চাহিদা অনুসারে একটি ফাংশন প্রার্থনা করতে। ভুলবেন না @grant GM_registerMenuCommand। এটি গ্রিসমোনকি মেনুতে এন্ট্রি যোগ করে, এর অধীনে অ্যাক্সেসযোগ্য (GM logo) > User Script Command...। এইভাবে আপনি সহজেই আপনার বুকমার্কলেটগুলি ব্যবহারকারী স্ক্রিপ্টগুলিতে রূপান্তর করতে পারেন।
jakub.g

আমি বুঝতে পারি না ... ক্লিক করা কোডটি লোড করার জন্য পৃষ্ঠাতে একটি বোতাম তৈরি করা কাজ করে না, এটি এখনও একটি সিএসপি ব্যতিক্রম ছুঁড়ে ফেলেছে
মাইকেল

7

গিথুব বলেছেন যে এটি অনুমান অনুসারে কাজ করা উচিত, তবে কোনও ব্রাউজার এটি সঠিকভাবে পায় না:

https://github.com/blog/1477-content-security-policy#bookmarklets

এই সমস্যাটির জন্য আপনার নিজের পছন্দসই ব্রাউজারের জন্য একটি বাগ খোলা উচিত, বা এটির জন্য ভোট দিন:


2
রেকর্ডের জন্য, বেসিক বুকমার্ক কার্যকারিতার জন্য বিশেষত আরও একটি ফায়ারফক্স বাগ রয়েছে (আলোচনায়
জড়িয়ে

অন্যদের ক্লিকটি সংরক্ষণ করতে, উপরের মন্তব্যে @ ডিজেপোহলি দ্বারা উল্লিখিত বাগ 1478037 ততক্ষণ পর্যন্ত বুকমার্কলেটগুলি চালিত হতে দেওয়া হবে যতক্ষণ তারা বাহ্যিক সংস্থান লোড না করে।
ওয়াল্ডরিয়াস

1

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

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

(পিএস এটি প্রতি সেবারের উত্তর নয় তবে আমি ভেবেছিলাম যে কেবল পৃষ্ঠাটি কালো তালিকাভুক্ত করা এবং এটি অন-কালো তালিকাভুক্ত করা থেকে দ্বিধা বোধ করার জন্য একটি ব্যবহারকারী স্ক্রিপ্টে হাত দেওয়ার আগে এটি মনে রাখা ভাল হবে be)


0

গ্রিসমোনকি ব্যবহারকারী স্ক্রিপ্ট (ফায়ারফক্সে) ব্যবহার করে আমি এই সমস্যার জন্য একটি ওয়ার্ক-এভার "ফিক্স" তৈরি করেছি। আপনার কাছে এখন সমস্ত সিএসপি এবং https: // সাইটগুলিতে বুকমার্কলেট থাকতে পারে এবং আপনার বুকমার্কলেটগুলি পৃথকভাবে বুকমার্কে স্কোয়াড না করে একটি সুন্দর, সহজে সম্পাদনাযোগ্য লাইব্রেরি ফাইলে রাখতে পারেন।

দেখুন: https://groups.google.com/d/msg/greasemonkey-users/mw61Ynw5ORc/Gl_BNUhtSq0J


-1

আপনি যদি ফায়ারফক্সে সিএসপি-সক্ষম ওয়েবসাইটগুলিতে আপনার বুকমার্কলেটগুলি চালাতে চান তবে আপনি সিএসএস স্টাইলশিটগুলি ব্যবহার করতে পারেন, স্ট্যাকওভারফ্লোতে আমার উত্তর দেখুন ।

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