jQuery 3未満のXSS脆弱性を修正する方法。jQuery1/2は最新版でも必要。
jQuery 3未満は、XSSの脆弱性を抱えています。 JVNは「リスク:低」に設定していますが、脆弱性として認定されてしまっているので対策しておくに越したことはありません。
対策
jQuery 3にアップグレードすることが望ましいですが、それができない場合はjQueryを読み込んでるscriptタグのすぐ下に、以下を追記してください。
<script>
jQuery.ajaxPrefilter( function( s ) {
if ( s.crossDomain ) { s.contents.script = false; }
} );
</script>
これによって、Ajaxをつかって「異なるドメイン」からJavaScriptファイルを読み込むことができなくなります。
場合は、そのScriptは動かなくなります。
脆弱性をもっているかの確認方法
Google ChromeのConsoleを開いて、 以下を入力して実行ください。
jQuery.get( 'https://sakurity.com/jqueryxss' )
アラートが表示されなければ問題ないです。
これひとつではリスクはないに等しいですが、組み合わせによっては大きな問題になることもありますのでご注意ください。
なお、この脆弱性についての詳しい情報は、 https://github.com/jquery/jquery/issues/2432 をご覧ください。
それでは、また。