2017-02-02 1 views
-1

要求したが、私が持っている質問ですAjaxで:XSS攻撃防止ゲット&POSTは、私がなど<、>などの特殊文字を許可しないことで、それは、フォームの入力で、特にどのように行うことができるかのXSSの脆弱性を防止する上で最低限の知識を持っている

  • Get Request:クエリ文字列paramsで効率的に防止できます。

  • POSTリクエストは:まだXSS攻撃やPOSTリクエストの原因XSS攻撃を防ぐことができPOSTリクエストを介して送信されたデータです。

これを理解するのを手伝ってください。

+0

アップデート[この](https://www.owasp.org/index.php/Testing_for_AJAX_Vulnerabilities_(OWASP-AJ-001))の記事を読むことによって最初にあなたの知識。 –

+0

お返事ありがとうございました。私は詳細を調べます。 – Shyam

答えて

2

あなたはXSSについて理解する必要がある最初の事は、それはブラウザではなく、サーバーをターゲットにしていることです。タグがGET要求またはPOST要求に挿入されている場合、これはサーバーとは関係ありません。そのデータをユーザーに提示する方法だけが重要です。

を使用すると、コンテンツがユーザー生成入力されているデータベースのフィールドを持っていると言います。このデータを任意のビューアに表示する場合は、HTMLタグ用にフィルタリングするか、またはフィルタリングしてから保存してください。順序は関係ありません。

は、しかし、あなたがここに描いているように見えるしていないXSS攻撃の異なる形式があります。自分のURLとPOSTリクエストを生成する外部サイト。これは合法であり、changepassword.php?newpass=hacked(粗い例)のようなものを防ぐために扱われなければならない。これに相当するPOSTも可能です。

多くのウェブサイトでは、一般に「ポストキー」と呼ばれる、ユーザーの現在のセッションに生成されバインドされたランダムな値またはフレーズを生成し、情報を変更するすべてのPOSTおよびGET呼び出しにクエリ文字列変数(GET)の形式またはフォームの隠しフィールド(POST)。すべての重要なPOSTとGETには、検証のためにそれを含める必要があります。

外部の攻撃者は、XSS攻撃が成功する前に「クロスサイト読書」を行うことができないため、ポストキーの内容を知ることができないため、POSTまたはGETリクエストを送信するとあなたのウェブサイトにはこのキーがないため、無害でなければなりません。

+0

+1は、サーバーではなくブラウザーをターゲットとすると、非常に重要なことに言及します。それは危険にさらされている顧客とウェブサイトの評判です。 – stfsngue

+0

@Havenard、返信いただきありがとうございます。現在のプロジェクトではCSRFの春のセキュリティと統合されています。だから、すべてのajaxリクエストは_csrfトークンで完了しますか?これはXSS攻撃を防ぐのに役立ちますか? – Shyam

関連する問題