Web ページのフロントエンドでよくある攻撃手口と攻撃を防ぐ方法_HTML/Xhtml_Web ページ制作

WBOY
リリース: 2016-05-16 16:41:54
オリジナル
1603 人が閲覧しました

Web サイトのフロントエンド開発で遭遇するセキュリティは、ほとんどの人がクライアント ブラウザで実行されるこれらのコードがサーバー側のセキュリティ リスクを引き起こすことはないと考えているため、人々に簡単に無視されます。この記事では、Web サイトでよく遭遇するセキュリティ問題について簡単に説明します。ウェブサイトのフロントエンドといくつかの対処戦略

フロントエンドテクノロジーの発展に伴い、セキュリティの問題がサーバーからすべてのユーザーに静かに発生し、ユーザーデータを盗み、悪意のある自己複製ワームコードを作成し、ユーザー間でウイルスを拡散させ、サーバーのドロップを引き起こします。さらに、ユーザーが知らないうちに攻撃者になる可能性もあります。これは決して驚くべきことではありません。リッチ クライアントの適用がますます普及しており、フロントエンドのセキュリティ問題も増加しています。今日は、一般的な攻撃方法と攻撃を防ぐ方法を簡単に紹介します。

一般的な攻撃

XSS (クロスサイトスクリプト)、クロスサイトスクリプティング攻撃。 悪意のある攻撃者が Web ページに悪意のある HTML コードを挿入し、ユーザーがそのページを閲覧すると、埋め込まれた悪意のある HTML コードが実行され、悪意のあるユーザーの特別な目的が達成されることを指します。 XSS は受動的攻撃であり、悪用するのが難しいため、多くの人がその有害性を無視することがよくあります。しかし、フロントエンド テクノロジが継続的に進歩し、リッチ クライアント アプリケーションの数が増加するにつれて、この問題はますます注目を集めるようになりました。簡単な例を挙げると、現在 SNS サイトを利用しているユーザーの場合、情報を公開する機能に脆弱性があり、この時点で悪意のあるスクリプトを入力すると、閲覧しているすべての人のブラウザーが攻撃されてしまいます。新しい情報によってこのスクリプトが実行され、ポップアップ ボックスが表示されます (非常にクールなポップアップ広告:))。さらに過激な行動をとった場合、その結果は想像を絶します。

CSRF (Cross Site Request Forgery)、クロスサイト偽造リクエスト。 名前が示すように、ユーザーが自分の ID を使用して、ユーザーの知らないうちに接続リクエストを偽造することで、攻撃者が達成する必要のある目的の一部を達成することができます。 csrf の攻撃は xss の攻撃とは異なります。 csrf は、攻撃者のアクティブな動作によってトリガーされる必要があります。これは「釣られている」疑惑があるようですね(笑)。
マルチウィンドウ ブラウザは、この点で横暴に貢献しているようです。なぜなら、開いた新しいウィンドウには現在のセッションがすべて含まれているからです。IE6 のような単一のブラウザ ウィンドウの場合、各ウィンドウにはそのような問題は発生しません。独立したプロセス。簡単な例を挙げてみましょう。あなたは白人社会をプレイしていて、誰かがリンクを送信しているのを見て、それをクリックすると、このリンク内にギフトを送信するためのフォームが偽造されます。これは単なる例であり、問​​題は明白です。 。

Cookie ハイジャックは、ページの権限を取得することで、ページ内に悪意のあるサイトへの簡単なリクエストを書き込み、Cookie を取得した後、ユーザーの ID を直接引き継ぐことができます。 Cookie を介してユーザーが盗まれた サイトにログインします。これはクッキーのハイジャックです。簡単な例を挙げると、ある人が非常に興味深い日記を書いて、それをみんなに共有しました。しかし、その日記を書いた人は別の意図を持っていました。サイト外部へのリクエストはログに秘密に隠され、このログを読んだ人は知らないうちに自分の Cookie を誰かに送信し、その人物は任意の人の Cookie を通じてログインできるようになります。


どうすればいいでしょうか?

大きく分けて 1. 一般ユーザー 2. Web サイト開発者 の 2 つに分類できます。

まず、Web 製品の一般ユーザーとして、多くの場合、私たちは受動的であり、知らないうちに悪用されているということについて話しましょう。
1 より高いセキュリティ レベルの Web アプリケーションにアクセスするには、別のブラウザ ウィンドウを開く必要があります。
2 見知らぬ人が投稿したリンクについては、コピーして新しいウィンドウで開くのが最善の方法です。もちろん、最善の方法は無視することです。

開発者にとっては、比較的詳細な観点から分析する必要があります。
XSS 攻撃の特徴は、攻撃者のコードがユーザーのブラウザーで実行権限を取得できる必要があることです。では、そのコードはどこから来たのでしょうか。このような攻撃を防ぐために、実際には入口と出口で厳格なフィルタリングを実行することができます。このような二重の保険により、同様の問題の 99% は当社によって解決されており、残りの 1% は解決済みであると言えます。このようなひどいブラウザによる後遺症は、将来的には少なくなると思います。

ここでは、xss 脆弱性の形式を整理しました

悪意のあるコードの値は、特定のタグの内容として表示されます (入力が html の場合、その html が解析されます)。たとえば、ユーザー名を入力して更新すると、ユーザー名が表示されます。ページ上の特定のタグに

を入力すると、

popper.w

そのため、フィルタリングせずにページに直接表示すると、サードパーティの JS コードが導入されて実行されます。

戦略: HTML 入力が必要ない HTML タグと一部の特殊文字 (「 < > & など) をフィルターし、ブラウザーによって解釈および実行されない文字に変換します。

悪意のあるコードは、特定のタグの属性として表示されます (" を使用して属性を切り詰め、新しい属性または悪意のあるメソッドを開くことにより)。この状況は、開発者が特定の DOM タグに情報を順番に記録することが原因で発生することがよくあります。機能を実装するには、ユーザーが入力したユーザー名などの情報が、ページ上のタグのタイトルの形で表示されます。この

を参照してください。

popper.w" onclick="alert(1)

ここで実際に入力したのは「popper.w」onclick="alert(1)" ですが、もちろん上にさらに内容を書くこともできます。

戦略: 属性内で切り捨てられる可能性のある一部の文字をフィルターします。属性自体に存在する一重引用符と二重引用符はトランスコードする必要があります。

悪意のあるコードは HTML コードそのものとして表示されます (一般的な HTML エディタ)。この状況が最も問題となるため、ここでは例を示しません。

戦略: ユーザーが入力した HTML タグとタグ属性をホワイトリストにフィルタリングすることが最善です。一部の脆弱なタグと属性に対して特別なフィルタリングを実行することもできます。

悪意のあるコードは JSON 文字列として表示されます (新しい悪意のある JS 変数、または変数の切り捨てによって実行可能コードが作成される場合もあります)。この問題の鍵は、ユーザーが入力した情報がページ内の JS コードの一部になる可能性があることです。 。

戦略: 属性内で切り捨てられる可能性のある一部の文字をフィルターします。属性自体に存在する一重引用符と二重引用符はトランスコードする必要があります。

crsf および Cookie ハイジャック用

特徴: 高い隠蔽性。xss の脆弱性が最初に悪用され、その後騙される場合があります。

戦略
リファラー、トークン、または検証コードを通じてユーザーの送信を検出します。
ページ上のリンクでは、ユーザー固有の番号 (ユーザー ID) に関連する情報を公開しないようにしてください。
ユーザーの変更、削除、送信操作には、事後操作を使用するのが最適です。
サイト全体の Cookie を回避し、ドメインに対してのみ Cookie を設定します。

わかりました、ここに書きます~

上記は、主に JS ハックの観点から見た、一般的なセキュリティ問題の一部です。フロントエンド テクノロジの継続的な開発と進歩に伴い、開発者にとって、より多くの問題が発生する可能性があります。開発段階なので、怖いのはハッキングではなく、製品のセキュリティの甘さですよ~。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート