2

Symfony 2.1 を使用して、小さなログイン フォームを備えた Web サイトを構築しています。このリンクのチュートリアルに従っていますが、CSRF 保護について話している部分は見当たりません。ただし、ここにはログイン セキュリティのすべてのオプションがあり、最終的には、そのタイプの保護をサポートする必要があることがはっきりとわかります。使い方がわかりません

4

2 に答える 2

2

ここでは、バージョン2.1でのCSRF保護の詳細を読むことができます


フォームにフォームクラスを使用しない場合は、csrf_token関数を使用できます(デフォルトでは空のインテンション文字列を渡すことを忘れないでください)。

<input type="hidden" name="token" value="{{ csrf_token('') }}">

ここで定義され、デフォルトの場合、このメソッドが実行されます。


これらの答えはあなたにも役立つかもしれません:

https://stackoverflow.com/a/12054712/970721
https://stackoverflow.com/a/11632713/970721

于 2012-10-07T21:09:55.320 に答える
0

ログイン用のフォームクラスを作成することを妨げるものは何もありません。あなたがする必要があるのは、ログインコントローラに生成されたフィールドの名前を伝えることだけです:

form_login:
    username_parameter: login[username]
    password_parameter: login[password]
    csrf_parameter:     login[_token]

フォームのCSRF意図を次のように設定しauthenticateます。

public function setDefaultOptions(OptionsResolverInterface $resolver)
{
    $resolver->setDefaults([
        'intention' => 'authenticate',
    ]);
}
于 2012-10-08T06:22:00.130 に答える