私のWebアプリケーションの1つに最近脆弱性評価が行われ、その結果の1つはクロスドメインインクルードスクリプトに関するものです。私たちのWebアプリは AddThis のaddthis_widget.jsを使用してFacebook/Twitterなどをブックマークしています。スクリプトのコンテンツを独自のドメインにコピーしてそこから含めるか、スクリプトの再実装することをお勧めします独自のコード内の機能。
これは本当に悪用可能な問題ですか?
コードがGoogleのCDNなどの大規模なコンテンツ配信ネットワーク(CDN)によって提供されている場合、他の方法でハッキングされる可能性が高くなります。大規模なCDNにはセキュリティに費やすお金があり、CDNがインフラストラクチャの弱点になることはまずありません。
サイトが一定の人気度に達したら、CDNから静的コンテンツを提供する必要があります。次の投稿を検討してください。
jQueryにGoogleのCDNを使用する必要があるのはなぜですか?
CDNの利点は、静的コンテンツを配信している、十分に保守されたサーバーが危険にさらされる可能性が非常に低いことを上回っています。そうは言っても、 Akamai製品に重大な欠陥を見つけました ...
はい、セキュリティの問題です。
含まれているJavaScriptはWebサイトのコンテキストで実行されます。つまり、JavaScriptはユーザーが制御できるものはすべて制御できます。
外部JavaScriptファイルは、特に害を及ぼす可能性があります:
したがって、次の場合にのみ外部JavaScriptファイルを含める必要があります:
もちろん、外部サーバーからJavaScriptを含める以外にもがあります:
他のサイトからのスクリプトを含めることの主な問題は、悪意のあるコードを含めるようにスクリプトを変更する可能性があることです。
現在、かなり大きな「欠点」がある2つのオプションがあります。
正直なところ、私はAddThisスクリプトを(サーバーから)含めることに固執しますが、セキュリティコンサルタントがあなたのために働いています... 3つのオプションと、すべてのオプション(再実装、クロスドメイン、サーバー)。