从表单本身外部激活注销表单是否安全
本文关键字:表单 注销 是否 安全 激活 外部 | 更新日期: 2023-09-27 18:30:37
关于
StackOverflow的第一个问题,所以如果这是一个重复的问题,请原谅我(我保证我先搜索了)。
我正在使用 MVC 4 构建一个简单的后台应用程序 ASP.NET。 注销的默认代码使用表单来使用验证功能,如下所示:
@using (Html.BeginForm("LogOut", "Account", FormMethod.Post, new { id = "logoutForm" }))
{
@Html.AntiForgeryToken()
<a href="javascript:document.getElementById('logoutForm').submit()">Log off</a>
}
但是,这给我的导航栏留下了一些奇怪的样式问题。 我突然想到,我可以通过将链接移动到表单之外来轻松解决它,如下所示:
<a href="javascript:document.getElementById('logoutForm').submit()">Log Out</a>
@using (Html.BeginForm("LogOut", "Account", FormMethod.Post, new { id = "logoutForm" }))
{
@Html.AntiForgeryToken()
}
然而,这让我想知道:这仍然安全吗?
(我认为是的,但我是 ASP.NET 新手,所以我想得到确认。
如果该方法只接受 POST 请求并且您验证防伪令牌LogOut
则完全没问题。
[ValidateAntiForgeryToken]
[HttpPost]
public ActionResult LogOut()
{
//log out user
}
首先,
我假设页面按照您希望的方式提交。
表单安全性更多地是关于您如何提交数据的上下文。如果需要安全,那么您可能需要考虑一些内部系统加密或SSL证书。
我会
尝试解决"我的导航栏奇怪的样式问题",而不是像这样使用HTML元素。
如果您需要帮助,请发布 HTML。
顺便说一句,我认为防伪令牌可以与您发布的内容一起使用。