SonarQube を使用してプロジェクトの静的コード分析を実行したところ、CSSファイルの1つにセキュリティの脆弱性が検出されました。
セキュリティ上の理由から、プロトコル相対URLは使用しないでください。
違反コード
@font-face { src: url("//myfont"); }
準拠ソリューション
@font-face { src: url("https://myfont"); }
見る
stylelint関連ルール
どちらのリンクもセキュリティに関連しておらず、プロトコル相対URLを悪用するエクスプロイトを見つけることができませんでした。
このルールは 2016年9月 に追加されました。
CSSスタイルシートでプロトコル相対URLを使用することにセキュリティ上のリスクはありますか?
あなたの質問は Paul Irish によるブログ投稿にリンクしています。これは、これが現在アンチパターンと見なされていることを述べています。 (2017年以降)
//
が使用されたのですか?その理由は、//mysite.com/some/resource
を記述でき、サイトがHTTPまたはHTTPSで呼び出されたかどうかに応じて、http://mysite.com/some/resource
またはhttps://mysite.com/some/resource
のいずれかに解決されるというものでした。
サイトがHTTPS経由で提供されている場合にHTTPリソースをロードすると、ブラウザが通常、混合コンテンツをロードするWebサイトについて不平を言うため、問題が発生する可能性があります。特に、IE6は大きなエラーメッセージを表示し、続行するかどうかを本当に確信しているかどうかを尋ねます。
2010年にこのブログ投稿が作成されたとき、HTTPSは高価であると考えられていたためです。 Let's Encryptが当時無料の証明書を提供していなかっただけでなく、HTTPとHTTPSの間にはかなりのパフォーマンスの違いがあったためです。最近では、これはもう当てはまりません、そして HTTPSオーバーヘッドの原因は無視できます です。
//
を使用するとどうなりますか?それは危険ですか?実際にはありませんが、使用する理由もありません。今日の推奨事項は、すべてに対してHTTPSを使用することです。本当に、HTTPSへのリダイレクト以外にプレーンなHTTPを提供する言い訳はもうありません。ブラウザが最終的にHTTPSをデフォルトとして表示する場合、HTTPが存在する理由はまったくありません。