HTTP GET 要求に組み込みの Express ミドルウェアを使用して CSRF 保護を実装するにはどうすればよいですか?
たとえば、ユーザーのログアウトは GET リクエストを介して行われることが多く、実際に Web アプリケーションの状態を変更するため、CSRF から保護する必要があります。
残念ながら、CSRF ミドルウェアは HTTP GET を無視し、トークンを手動でチェックするヘルパーをエクスポートしません。
GET 要求を無視しない Connect CSRF ミドルウェアのカスタム フォークを作成できます。これを行う行は次のとおりです: https://github.com/senchalabs/connect/blob/master/lib/middleware/csrf.js#L76
しかし、それをしないでください。GET リクエストは安全で冪等です: http://www.w3.org/Protocols/rfc2616/rfc2616-sec9.html
つまり、悪意のある Web スクリプトによってサイトからログアウトされることを心配する人は誰もいません。心配なのは、あなたの名前でスパムを投稿したり、銀行口座から送金したりする可能性があることです. それが、保護するためにCSRFが必要なものです。詳細はこちら: http://en.wikipedia.org/wiki/Csrf
ところで、無視するメソッドを明示的に設定する方法が公開されました
app.use(csurf({ignoreMethods: ['HEAD', 'OPTIONS']}))