เมื่อเร็ว ๆ นี้บางเว็บไซต์เช่น Facebook ใช้นโยบายความปลอดภัยเนื้อหา (CSP) เพื่อ จำกัด การโหลดสคริปต์จาก "แหล่งที่ไม่น่าเชื่อถือ" ตัวอย่างเช่นเมื่อขอเนื้อหา HTML ของ Facebook (เช่นhttps://www.facebook.com ) การตอบสนอง HTTP ของ Facebook จะมีส่วนหัวการตอบสนองต่อไปนี้:
x-webkit-csp:default-src *;script-src https://*.facebook.com http://*.facebook.com https://*.fbcdn.net http://*.fbcdn.net *.facebook.net *.google-analytics.com *.virtualearth.net *.google.com 127.0.0.1:* *.spotilocal.com:* chrome-extension://lifbcibllhkdhoafpjfnlhfpfgnpldfl 'unsafe-inline' 'unsafe-eval' https://*.akamaihd.net http://*.akamaihd.net;style-src * 'unsafe-inline';connect-src https://*.facebook.com http://*.facebook.com https://*.fbcdn.net http://*.fbcdn.net *.facebook.net *.spotilocal.com:* https://*.akamaihd.net ws://*.facebook.com:* http://*.akamaihd.net;
สิ่งนี้มีผลกระทบกับ bookmarklet บางตัวที่ต้องการโหลดและเรียกใช้งานไลบรารี Javascript จากแหล่งที่ไม่น่าเชื่อถือ
ตัวอย่างเช่นเมื่อใดก็ตามที่ฉันพยายามเรียกใช้Show Anchors bookmarkletบนหน้า Facebook การเรียกใช้ bookmarklet นี้ล้มเหลวเนื่องจากพยายามโหลด jQuery จากแหล่งที่ไม่น่าเชื่อถือ ในคอนโซลนักพัฒนาซอฟต์แวร์ของ Chrome จะกล่าวว่า:
Refused to load the script 'http://ajax.googleapis.com/ajax/libs/jquery/1.3/jquery.min.js' because it violates the following Content Security Policy directive: "script-src https://*.facebook.com http://*.facebook.com https://*.fbcdn.net http://*.fbcdn.net *.facebook.net *.google-analytics.com *.virtualearth.net *.google.com 127.0.0.1:* *.spotilocal.com:* chrome-extension://lifbcibllhkdhoafpjfnlhfpfgnpldfl 'unsafe-inline' 'unsafe-eval' https://*.akamaihd.net http://*.akamaihd.net".
ฉันพบหน้าเอกสารของ Chrome เกี่ยวกับหัวข้อนี้แล้ว แต่ใช้ได้เฉพาะกับส่วนขยายของ Chromeเท่านั้น
ฉันกำลังมองหาวิธีแก้ปัญหาที่อนุญาตให้ฉัน
- ทั้งในครั้งเดียวปิดการใช้งาน CSP
- หรืออนุญาตรายการแหล่งที่เชื่อถือของฉันอย่างถาวร