2012-04-30 4 views
2

私はバックボーンとnode.jsを使用してWebサイトを作成していますが、デフォルトではCSRFに対する保護はないと考えています。 node.jsでバックボーンを使用する場合、CSRFに対抗する標準的な方法がありますか? ありがとうバックボーンとnode.jsを使用したCSRF防御

答えて

4

単にXMLHTTPRequestの値を持つX-Requested-Byヘッダーがあることを確認できます。 AJAXリクエストにはドメイン間の制限があるため、そのヘッダーが存在する場合はAJAXリクエストはそうではありませんでした。悪意のあるWebサイトの隠れたフォーム

+0

クロスドメインのajaxリクエストを妨げるブラウザに依存していませんか? – dan

+0

すべてのブラウザがそれらを防ぎます。 – ThiefMaster

+2

**一般的な**ブラウザがその動作を停止するという事実に依存することはできません。クライアント側では完全に* opt-in *であり、**信頼できるものではありません。 [zombie.js](http://zombie.labnotes.org)で悪意のあるクライアントを実装した場合はどうなりますか? –

2

node.js +バックボーンに固有のことはわかりませんが、http://www.senchalabs.org/connect/middleware-csrf.html(あなたがexpressまたは何かのconnect-compatibleを使用していると仮定します)を使用できます。メタタグのように、HTMLのどこかにトークンを出力する必要があります。次に、バックボーンの同期方法を変更して、そのトークンを取得し、ヘッダー、クエリ、またはフォームを介して表現することができます。

1

Allow-Originヘッダーが何らかの許容値(たとえば、Allow-Origin:*)に設定されている場合、X-Requested-Byは要求偽造を防止しません。別のホストで実行されているjavascriptは依頼依頼を可能にするリクエストを作成することができます。

関連する問題