2015-07-11 89 views
0

我对如何将ajax请求上的参数最佳/安全地传递给控制器​​存在疑问。通过Symfony2中的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]+"}) 

- “乙ut是通过这种方式(Url)推荐的方式传递id和一个安全(csrf)令牌? (2)通过post主体传递变量,而不是在url中,我将失去使用“要求”自动检查正确类型的可能性 - 但是 - 值更安全地传递到服务器(当然使用https)。


如何在使用AJAX请求时通常传递参数?什么是最安全的做法?

回答

0

您可以通过URL传递id和标记没有问题。

正如你所说的,@Route允许你检查参数模式(id => integer和token => string)。

令牌值并不一定非要像这个reference中提到的那样保密。

希望它能帮助你。

+0

在哪种情况下(除了表单提交和登录)我会使用“邮政正文”传输数据?所以当更新E.g.一个实体,我会在路由中传递必要的参数生成 – user3746259

+0

当您不希望让用户在url中看到它们时,只需将数据设置在“Post Body”中。 – zilongqiu

+0

好吧,使用阿贾克斯他永远不会看到的网址。是否还有其他安全问题需要注意? – user3746259

相关问题