ホームページ >テクノロジー周辺機器 >IT業界 >コンテンツセキュリティポリシーでWebセキュリティを改善します
コンテンツセキュリティポリシー(CSP):Webセキュリティに関する包括的なガイド
コンテンツセキュリティポリシー(CSP)は、コンテンツインジェクション攻撃、主にクロスサイトスクリプト(XSS)に対してWebサイトを保護する重要なセキュリティメカニズムです。 この宣言的なポリシーにより、開発者は信頼できるリソースの起源のホワイトリストを作成し、ブラウザがリソースをロードし、インラインスタイルとスクリプトを使用し、動的なJavaScript評価(eval()
を使用するなど)を処理する方法を制御することができます。 このホワイトリストの外部からリソースをロードしようとする試みはブロックされています。
重要な概念:
Content-Security-Policy
report-uri
W3C候補の推奨である cspは、ヘッダーを使用してディレクティブを提供します。 重要な指令には、
、、Content-Security-Policy
、default-src
、script-src
、object-src
、style-src
、img-src
、およびmedia-src
が含まれます。 frame-src
は、不特定の指示のためのフォールバックとして機能します
font-src
ディレクティブは、一貫したパターンに従います:connect-src
default-src
:現在のドメインを参照してください。
self
none
object-src 'none'
<code>Content-Security-Policy: default-src 'self';</code>ドメインが指定されている間、パスは現在サポートされていません。 ただし、WildCards(
.mycdn.com`)。 各指令には、明示的なドメイン/サブドメインリストが必要です。彼らは以前の指令から継承しません
データURLの場合、指令にdata:
を含めます(例:img-src 'data:'
)。 unsafe-inline
(script-src
およびstyle-src
)は、インライン<script></script>
および<style></style>
タグを許可します。 どちらもオプトインポリシーを使用します。それらを省略すると、制限が強化されます
unsafe-eval
script-src
ブラウザ互換性:
CSP 1.0は、互換性が限られている古いインターネットエクスプローラーバージョンで、幅広いブラウザのサポートを楽しんでいます。
:
で違反を監視します
開発ではブラウザコンソールのロギングを使用している間、生産環境はreport-uri
の恩恵を受けます。これにより、違反の詳細(JSON形式)を含むHTTP投稿リクエストが指定されたURLに送信されます。
例:
report-uri
違反(例:
。
<code>Content-Security-Policy: default-src 'self';</code>
ヘッダー:www.google-analytics.com
report-uri
を使用してください。 これは、リソースをブロックせずに違反を報告し、サイトの混乱なしに政策の改良を可能にします。 両方のヘッダーを同時に使用できます。
Content-Security-Policy-Report-Only
CSPの実装:
Content-Security-Policy-Report-Only
CSPはHTTPヘッダーを介して設定されています。 サーバー構成(Apache、IIS、nginx)またはプログラマティックメソッド(php's
)を使用できます。 実世界の例:
header()
FacebookとTwitterは、ワイルドカードと特定のドメイン手当を利用して、多様なCSP実装を実証しています。
setHeader()
cspレベル2は、新しい指令(
、、
、、)、改善されたレポート、およびインラインスクリプトとスタイルの非CE/ハッシュベースの保護を紹介します。
非CEベースの保護: base-uri
child-src
ランダムに生成されたノンセは、CSPヘッダーとインラインスクリプトタグの両方に含まれています。
form-action
frame-ancestors
ハッシュベースの保護:plugin-types
サーバーは、CSPヘッダーに含まれるスクリプト/スタイルブロックのハッシュを計算します。ブラウザは、実行前にこのハッシュを検証します 結論:
CSPは、リソースの負荷を制御することにより、Webセキュリティを大幅に強化します。
監視が促進され、レベル2はさらに改良を導入します。 CSPの実装は、堅牢で安全なWebアプリケーションを構築する上で重要なステップです。 (注:画像プレースホルダーは、要求されているように変更されていません。)
以上がコンテンツセキュリティポリシーでWebセキュリティを改善しますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。