を渡すときにsymfonyのCSRF攻撃も検出されました:_csrf_token
が実際にレンダリングされている私の形である。ここ_csrf_token
<form novalidate action="<?php echo url_for('article/submit') ?>" method="POST">
<?php echo $form['title']->renderRow() ?>
<?php echo $form['content']->renderRow() ?>
<?php echo $form->renderHiddenFields() ?>
<input type="submit" value="Save"/>
</form>
そして、生成されたHTMLソースを見て、。私はvar_dump($_POST); die;
をすれば、私は取得しても自分の行動に
_csrf_token [CSRF attack detected.]
:
public function executeSubmit(sfWebRequest $request)
{
$this->forward404Unless($request->isMethod('post'));
$request->checkCSRFProtection();
die('submitting post...');
}
エラー:ここに私のアクションがある
Array
(
[title] => string(8) "My title"
[content] => string(10) "My Content"
[_csrf_token] => string(32) "<my token here>"
)
ので、CSRFトークンが確実にレンダリングされていると正しく渡されました。私は間違って何をしていますか?
さらに、checkCSRFProtection()
のドキュメントはありますか? APIのドキュメントは、それが存在することを認める以外に何も言いません。
問題は、私が代わりに使用しようとしているの '' checkCSRFProtection()を使用して、フォームをチェックしようとしていたということでした'isValid()'メソッドです。ご協力いただきありがとうございます。 Symfony 1.4 API Docsでは、 'checkCSRFProtection()'についての詳細は提供していません。それは 'link_to()'のためだけに機能することを知っておきましょう。再度、感謝します! –
@Jakobud:うれしい!ええ、ドキュメントはかなり厄介です。 –
@jakobud:レコードを削除する単純なajax投稿要求など、検証するための実際のフォームがない場合は、 'checkCSRFProtection'を使用します。生成された管理モジュールといくつかの例を見ることができます。 – prodigitalson