在Symfony2中通过AJAX安全地将参数传递给Controller

时间:2015-07-11 22:44:29

标签: php ajax security symfony routing

我有一个关于如何最好/安全地将ajax请求的参数传递给我的控制器的问题。

我在项目中使用Symfony获得了两个选项

(1)我可以通过以下方式传递参数,例如我的实体ID和csrf标记:

Routing.generate("my_update_route", {'id': entity.id, 'token' : token});

- >这种方法的好处是,我可以在我的@Route注释中检查带有要求的正确参数类型:

@Route("/account/entity/update/{id}/{token}", name="my_update_route", 
        requirements={"id" = "\d+", "token" = "[a-z]+"})

- >但是通过这种方式(Url)推荐的方式传递id和安全(csrf)令牌?

或者(2)通过帖子正文传递变量,而不是在网址中传递变量,我会失去自动检查“要求”正确类型的可能性 - 但是 - 值更安全地传递给服务器(当然使用https时。

在使用AJAX请求时,您通常如何传递参数?最安全的方式是什么?

1 个答案:

答案 0 :(得分:0)

您可以毫无问题地通过URL传递ID和令牌。

正如您所说,注释@Route允许您检查参数模式(id =>整数和标记=>字符串)。

令牌值不一定是秘密的,如reference中所述。

希望它会对你有所帮助。