我想製作刪除鏈接安全的內容。即。AntiforgeryToken&許多形式perf
行1編輯刪除
行2編輯刪除
其中刪除鏈接插入鏈接。
要刪除鏈接POST請求,而不是得到的請求,我可以用一個AntiForgeryToken和AntiForgeryToken驗證
using(Html.BeginForm("Delete","Home", FormMethod.Post))
{
@Html.AntiForgeryToken()
@Html.Hidden("objectId", i)
<input type="submit" value="Delete" />
}
C#
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult Delete(int objectId)
{
SafeLogic();
return View(...);
}
配對一個簡單的表格後要做到這一點
我也想用表來做這件事,但是我對這麼多的令牌產生了一些性能問題,例如。
@for (int i = 0; i < 500; i++)
{
<tr>
<td> Data Row @i </td>
<td>
using(Html.BeginForm("Index","Home", FormMethod.Post))
{
@Html.AntiForgeryToken()
@Html.Hidden("objectId", i)
<input type="image" src="img_delete.gif" alt="Delete" />
}
</td>
}
AntiForgeryTokens的生成代價如何?是許多AntiForgery令牌的生成例如。高達100,將成爲一個問題。有這麼多內聯html表單可以嗎?
我會看下面的@Josh代表什麼 - 用jQuery調用頁面感覺更現代。即使你發佈帖子,那裏的表單也會要求用戶重新加載整個頁面或框架。 – zaitsman
我也想知道答案,當每個人都只是添加javascript來完成無需完成的工作時,它就會讓我很煩惱。它只是增加了不必要的複雜性和脆弱性。 (並不是說我反對那些善於使用javascript的漂亮網站,但它只是這個默認答案,讓我很緊張)。到目前爲止,沒有任何答案直接回答這個問題。 –
太糟糕了,接受的答案不回答關於大量antiforgerytokens成本/性能的問題:( – marapet