4

POST リクエストをテストする自動化があるとします。これらの POST リクエストは、Rails の組み込み CSRF 保護により、CSRF トークンが含まれていないと機能しません。

この場合、自動化を実行するためのベスト プラクティスは何ですか?
GET 以外のすべてのカスタム リクエストに CSRF トークンを含める必要がありますか? (「はい」の場合は「どのように?」)
または、自動化のための CSRF 保護を無効にするようにアプリを構成する方がよいでしょうか?

4

1 に答える 1

1

そもそもなぜその質問をしたのかわかりませんが、喜んでお答えします :)

簡単に言えば、自動化テストに使用するツールによって異なります。回答のタグでツール (cucumber with watir) を使用する場合、これらのツールはブラウザーを直接自動化するため、すべてが期待どおりに機能します。

これは、テストが実際のユーザーと同様に動作することを意味します。CSRF トークン チェックが実際のユーザーに対して機能する場合、自動化されたテストでも機能します。これらのテストで POST リクエストを手動で行うことはありません (少なくとも行うべきではありません) が、Web ページのフォームに記入してそのフォームを送信します。これは、Rails によって生成された CSRF トークンも送信されることを意味します。そして、すべてがうまくダンディになります。

ただし、奇妙な理由で POST リクエストを手動で作成する必要がある場合は、test環境の CSRF チェックを無効にする必要があります。

于 2013-01-17T21:13:22.730 に答える