إضافة سكريبتات السمات تلقائيًا إلى CSP

كثيرًا ما نرى مواضيع دعم من أشخاص يحاولون إضافة مراجع جافا سكريبت خارجية إلى قوالبهم. افتراضيًا، ستقوم سياسة أمان المحتوى بحظر ذلك، ويجب على المدير إضافة السكربت يدويًا إلى إعدادات موقع CSP (أو إعدادات/معدّلات القالب).

ومع ذلك، قدم @Johani اقتراحًا ممتازًا حول كيفية تحسين ذلك.

بدلًا من طلب نسخ ولصق العناصر من قبل مطوري القوالب عبر واجهة إدارة الموقع، يمكننا أتمتة هذه العملية. يمكننا تحليل جميع عناصر HTML في القالب، واستخراج مصدر أي سكربتات خارجية، وإضافتها إلى سياسة أمان المحتوى.

بعد كل شيء، الحواسيب أفضل بكثير من البشر في عمليات النسخ واللصق المتكررة!

لقد فتحت طلب دمج (PR) يطبق ذلك:

15 إعجابًا

I am seeing some console errors locally:

In production environments, I also see sources added in the format https://CDN_SERVER/theme-javascripts/31657759d037d8c06397e9965a1113169100846e.js... which is redundant, because the policy already whitelists https://CDN_SERVER/theme-javascripts. Probably limit the auto-extension to to external script sources only?

6 إعجابات

Thanks @pmusaraj, I added some more checks to make sure we don’t serve invalid urls in the CSP, and also made sure theme-javascript URLs are excluded:

https://github.com/discourse/discourse/commit/f95609ae23ce1604b5f53c9d232e66895cfc9ee7

7 إعجابات

هذا رائع. @merefield أليس هذا رائعًا جدًا؟

إعجاب واحد (1)