2015-07-11 123 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

相關問題