XSSのクロスサイトスクリプティング攻撃:
XSSのクロスサイトスクリプティング攻撃(クロスサイトスクリプティング)、および順序でないカスケーディングスタイルシート(カスケードスタイルシート、CSS)頭字語の混乱に、XSSと略すので、クロスサイトスクリプティング攻撃。XSSは、Webページ上で悪質なコードを挿入する攻撃です。利用者は、攻撃の目的を達成するために、ページ、コードの実行を参照するとき。クッキーは、被害者の盗まれたデータ、セッションハイジャック、フィッシング、およびその他の攻撃に取ることができます
反射型(タイプ非持続XSS)と永続形式:XSSのクロスサイトスクリプティング攻撃が分かれています
反射型XSS:
リンク攻撃をユーザーがクリックすると、サーバが応答を解析し、応答の内容で攻撃者のXSSコードが表示されますが返され、ブラウザが実行されます。このように、スクリプトのXSS攻撃は、いわゆる反射XSSを実行するには、Webサーバーブラウザにバックを反映しています
正常链接,点击后会在页面显示hello 用户名
http://xxx.com?username=yang
页面输出
hello yang
如果我把上面的url变成这样,同时服务器没有做过滤
http://xxx.com?username=<script>alert("xss")</script>
页面会出现弹框,显示xss;可能会在上面的脚本中加入其它更加复杂的脚本
耐久性に優れたXSS:
攻撃者は、関連ページに悪質なスクリプトデータを入力した後、悪意のあるスクリプトは、サーバのデータベースに保存されます。ユーザーの閲覧ページは、データベースからデータを照会すると、データがページ上で実行される悪質なスクリプトをもたらすことが示されているページに攻撃されることがあり、ユーザーがこのページを閲覧します。この単純なプロセスとして説明することができます悪意のあるユーザー入力HTML形式のWebプログラム] - > [データベースへのアクセス - > Webアプリケーションを - >ユーザのブラウザ。
たとえば、次のようにコメントを提出するH悪意のあるユーザー<script>console.log(document.cookie)</script>
のアクセスにサイトを、ユーザBは、このスクリプトは、悪意のあるスクリプトは、この通知それを次のようにクッキーBのいずれか、およびBすることができ、ユーザHのブラウザBで直接実行されます。クッキーを使用すると、悪意のあるユーザーは、Bのプライバシーへの無料アクセスをH Bのログイン情報を偽造することができます そして、Bは常に暗所に保存されます。
DOMベースのXSS
Webサーバに関与していないDOMベースのXSSは、唯一のXSSブラウザに関するものです。例えば、ユーザ入力は、動的にDOMノードを構築するユーザ入力が濾過されていない場合、それはまた、XSS攻撃につながる可能性があります。
XSSの防衛
XSSが発生する理由は次のとおりです。ユーザ入力は、ブラウザのページへの出力には、何のチェック、転送、交換がない厳格なフィルタをしません
使用XSSフィルター
入力フィルタ、ユーザ検証によって提出されたデータ、指定された長さの範囲内でのみ受け入れ、コンテンツのフォーマットを提出する我々の期待に沿って、ブロック又は付加以外の他のデータを無視します。
防衛タイプのDOM XSSのタイプ:
HTMLコンテンツまたは属性に出力する、HTMLコーディング処理は(「<」と "実行され、<スクリプト>はJSを符号化することが可能に出力するように、出力変数は、エスケープコーディングページに関連した仕事をしたとき>「変換HTML文字エンティティ)。異なる符号化の異なる状況に応じて処理します。
重要なクッキーは、HTTPのみとマークされています
これが事実である場合には、要求Webサーバーにブラウザが開始クッキーフィールドをもたらすでしょうが、これはJavaScriptのdocument.cookieを使用GETクッキーXSS攻撃を避け、スクリプトでこのクッキーにアクセスすることができない場合
CSP:コンテンツセキュリティポリシー(コンテンツセキュリティポリシー)
CSPは、ホワイトリスト方式の本質である、開発者が明示的にホワイトリストを提供するのと同等の外部リソースをロードして実行することができ、クライアントを、教えてください。その実装と執行は、すべてのブラウザで行われ、開発者は構成のみを提供する必要があります。CSPは、大幅にWebページのセキュリティは、(これは、減らす排除しないことがあることに注意してください)、クロスサイトスクリプティング攻撃を減らす強化します。
のCSR(コンテンツセキュリティポリシー)を有効にする方法
- HTTPヘッダフィールドによってコンテンツセキュリティポリシー:デフォルト設定、コードが実行されるインライン防止は、ある程度防止することができます。ここでは、インラインコードであって、<SCRIPT>ブロックの内容、インラインイベント、インラインスタイル。
- HTMLの<meta>タグで。
<meta http-equiv="Content-Security-Policy" content="xxxxxxxxxx">