Secure Site

This site is protected from clickjacking attacks.

この例では、JavaScript は現在のウィンドウ (window.self) が最上位のウィンドウ (window.top) でないかどうかをチェックします。そうでない場合は、最上位のウィンドウを現在のウィンドウの URL にリダイレクトし、事実上 iframe から抜け出します。

2.イベント リスナーによるフレーム バスティングの強化
イベント リスナーを使用してページがフレーム化されているかどうかを継続的にチェックすることで、フレームバスティング手法をさらに強化できます。

例:

            Enhanced Frame Busting        

Secure Site

This site is protected from clickjacking attacks.

この例では、継続的な保護を確保するために、DOMContentLoaded、load、resize イベントでPreventClickjacking 関数が呼び出されます。

サーバー側の保護

JavaScript メソッドは便利ですが、サーバー側の保護を実装すると、追加のセキュリティ層が提供されます。クリックジャッキングを防ぐために Apache と Nginx で HTTP ヘッダーを設定する方法は次のとおりです:

1. X フレーム オプション ヘッダー
X-Frame-Options ヘッダーを使用すると、サイトを iframe に埋め込むことができるかどうかを指定できます。 3 つのオプションがあります:

DENY: ドメインがページを埋め込むことを防ぎます。
SAMEORIGIN: 同じオリジンからの埋め込みのみを許可します。
ALLOW-FROM uri: 指定された URI からの埋め込みを許可します。
例:

X-Frame-Options: DENY

Apache 構成
このヘッダーをサーバー構成に追加します:

# ApacheHeader always set X-Frame-Options \\\"DENY\\\"

Nginx 構成
このヘッダーをサーバー構成に追加します:

2.コンテンツ セキュリティ ポリシー (CSP) フレームの祖先
CSP は、iframe を使用してページを埋め込むことができる有効な親を指定する、frame-ancestors ディレクティブを通じて、より柔軟なアプローチを提供します。

例:

Content-Security-Policy: frame-ancestors \\'self\\'

Apache 構成
このヘッダーをサーバー構成に追加します:

例:

# ApacheHeader always set Content-Security-Policy \\\"frame-ancestors \\'self\\'\\\"

Nginx 構成
このヘッダーをサーバー構成に追加します:

# Nginxadd_header Content-Security-Policy \\\"frame-ancestors \\'self\\'\\\";

結論

クリックジャッキングは Web セキュリティに対する深刻な脅威ですが、JavaScript フレームバスティング手法と、X-Frame-Options や Content-Security-Policy ヘッダーなどのサーバー側の保護を実装することで、Web アプリケーションを効果的に保護できます。提供されている例を使用して、サイトのセキュリティを強化し、ユーザーにより安全なエクスペリエンスを提供してください。

","image":"http://www.luping.net/uploads/20240801/172248708366ab112bdc1ec.jpg","datePublished":"2024-08-01T12:38:03+08:00","dateModified":"2024-08-01T12:38:03+08:00","author":{"@type":"Person","name":"luping.net","url":"https://www.luping.net/articlelist/0_1.html"}}
「労働者が自分の仕事をうまくやりたいなら、まず自分の道具を研ぎ澄まさなければなりません。」 - 孔子、「論語。陸霊公」
表紙 > プログラミング > JavaScript でのクリックジャッキング攻撃の防止

JavaScript でのクリックジャッキング攻撃の防止

2024 年 8 月 1 日に公開
ブラウズ:167

Preventing Clickjacking Attacks in JavaScript

クリックジャッキングは UI 修復とも呼ばれ、悪意のある攻撃者が iframe 内に Web ページを埋め込むことでユーザーをだまして、ユーザーが認識しているものとは異なるものをクリックさせる攻撃の一種です。これにより、不正なアクションが発生し、ユーザーのセキュリティが侵害される可能性があります。このブログでは、JavaScript と Apache および Nginx のサーバー構成を使用してクリックジャッキング攻撃を防ぐ方法を、わかりやすい例とともに説明します。

クリックジャッキングを理解する

クリックジャッキングには、正当なウェブページ要素の上に透明または不透明の iframe を配置することが含まれており、ユーザーは無意識のうちに設定の変更や資金の送金などのアクションを実行します。

現実世界の例

攻撃者が銀行サイトから信頼できる Web ページに非表示の iframe を埋め込むシナリオを考えてみましょう。ユーザーが一見無害なボタンをクリックすると、実際には銀行取引を承認している可能性があります。

脆弱なページの例は次のとおりです:



    
    
    Clickjacking Example


    

Welcome to Our Site

JavaScript によるクリックジャッキングの防止

クリックジャッキング攻撃を防ぐには、JavaScript を使用して Web サイトがフレーム化されていないことを確認します。この保護を実装する方法に関するステップバイステップのガイドは次のとおりです:

1. JavaScript フレームバスティング
フレームバスティングには、JavaScript を使用して、Web サイトが iframe 内に読み込まれているかどうかを検出し、そこから抜け出すことが含まれます。

例:



    
    
    Frame Busting Example
    


    

Secure Site

This site is protected from clickjacking attacks.

この例では、JavaScript は現在のウィンドウ (window.self) が最上位のウィンドウ (window.top) でないかどうかをチェックします。そうでない場合は、最上位のウィンドウを現在のウィンドウの URL にリダイレクトし、事実上 iframe から抜け出します。

2.イベント リスナーによるフレーム バスティングの強化
イベント リスナーを使用してページがフレーム化されているかどうかを継続的にチェックすることで、フレームバスティング手法をさらに強化できます。

例:



    
    
    Enhanced Frame Busting
    


    

Secure Site

This site is protected from clickjacking attacks.

この例では、継続的な保護を確保するために、DOMContentLoaded、load、resize イベントでPreventClickjacking 関数が呼び出されます。

サーバー側の保護

JavaScript メソッドは便利ですが、サーバー側の保護を実装すると、追加のセキュリティ層が提供されます。クリックジャッキングを防ぐために Apache と Nginx で HTTP ヘッダーを設定する方法は次のとおりです:

1. X フレーム オプション ヘッダー
X-Frame-Options ヘッダーを使用すると、サイトを iframe に埋め込むことができるかどうかを指定できます。 3 つのオプションがあります:

DENY: ドメインがページを埋め込むことを防ぎます。
SAMEORIGIN: 同じオリジンからの埋め込みのみを許可します。
ALLOW-FROM uri: 指定された URI からの埋め込みを許可します。
例:

X-Frame-Options: DENY

Apache 構成
このヘッダーをサーバー構成に追加します:

# Apache
Header always set X-Frame-Options "DENY"

Nginx 構成
このヘッダーをサーバー構成に追加します:

2.コンテンツ セキュリティ ポリシー (CSP) フレームの祖先
CSP は、iframe を使用してページを埋め込むことができる有効な親を指定する、frame-ancestors ディレクティブを通じて、より柔軟なアプローチを提供します。

例:

Content-Security-Policy: frame-ancestors 'self'

Apache 構成
このヘッダーをサーバー構成に追加します:

例:

# Apache
Header always set Content-Security-Policy "frame-ancestors 'self'"

Nginx 構成
このヘッダーをサーバー構成に追加します:

# Nginx
add_header Content-Security-Policy "frame-ancestors 'self'";

結論

クリックジャッキングは Web セキュリティに対する深刻な脅威ですが、JavaScript フレームバスティング手法と、X-Frame-Options や Content-Security-Policy ヘッダーなどのサーバー側の保護を実装することで、Web アプリケーションを効果的に保護できます。提供されている例を使用して、サイトのセキュリティを強化し、ユーザーにより安全なエクスペリエンスを提供してください。

リリースステートメント この記事は次の場所に転載されています: https://dev.to/rigalpatel001/preventing-clickjacking-attachs-in-javascript-39pj?1 侵害がある場合は、[email protected] に連絡して削除してください。
最新のチュートリアル もっと>

免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。

Copyright© 2022 湘ICP备2022001581号-3