2

我需要使用 curl 命令登录系统,但我不知道如何跳过 CSRF 身份验证。

我尝试了以下但没有奏效:

curl -d "form_username_input_name=username&form_passowrd_input_name=password" url

我如何实现我想要的?

4

1 回答 1

3

我认为您需要创建一个专用于 cURL 登录的单独登录。您将无法绕过 CSRF 保护(实际上这就是它的制作原因)。

所以,

  • 扩展应用中的默认sfGuardAuth模块
  • 创建一个名为(例如)的新动作executeLoginCurl
  • 使用默认的 sfGuard 验证器执行验证sfGuardValidatorUser
  • 然后调用$this->getUser()->signIn(...)以登录用户

我建议您使用保护措施来避免其他应用程序卷曲此模块/操作并尝试强制登录。例如,您可以对 IP 进行此操作的限制。

于 2013-01-07T08:28:09.950 回答