asp.net-mvc – 我需要在我的所有页面上使用`[ValidateAntiForgeryToken]和@ Html.AntiForgeryToken()`?

所有我的项目的页面需要身份验证..通常我不会使用[ValidateAntiForgeryToken]和@ Html.AntiForgeryToken()在我的控制器和视图..只有登录页面有它..

>他们是什么[ValidateAntiForgeryToken]和@ Html.AntiForgeryToken()?
>我需要使用它们吗?
>哪些无味我必须使用?

我的web.config这样的部分

<authorization>
  <deny users="?" />
</authorization>
<authentication mode="Forms">
  <forms loginUrl="~/User/Login" timeout="30" cookieless="UseDeviceProfile" name="AbosSMSP" />
</authentication>

我这样的错误

解决方法

想想,防伪是一种确保即将发布的请求实际上是从您输出的视图中产生的请求的方法.它阻止跨站点脚本攻击,我认为它也处理post replay攻击.

将前门固定到您的应用程序是一个好的开始,它阻止人们将他们的数据以暴力的方式窃取,但是并不能阻止所有形式的攻击.诸如社交工程和网络钓鱼的事情可以让某人进入您的网站,而不会破坏登录页面.

一旦进入,他们可以采取各种各样的讨厌,所以看看OSWAP的建议,看看是否还有其他可能会受到攻击的攻击. http://www.ergon.ch/fileadmin/doc/Airlock_Factsheet_OWASP_en.pdf

如果有疑问,你可以让你的站点笔记本由伦理黑客进行数百次搅拌,如果你正在寻找敏感数据,那么我会建议,因为他们会拉起你甚至不会想到的东西.

我的安全提示

> Antiforgerytoken登录页面
>缓慢所有认证尝试至少一秒钟(使蛮力不切实际)
>对n个无效登录执行帐号锁定程序
>始终在失败的登录时使用通用错误消息,以防止黑客知道登录的哪个部分出错
>始终使用盐加密数据库中的密码,盐应该是每个用户以防止对被盗数据库的彩虹攻击
>始终确保显示或检索的任何数据对该用户有效
>始终使用参数化的sql
>尝试并模糊您的URL和视图中传递的id,以防止修改或尝试直接引用攻击

之后,我想你会掩盖大部分的笔试,会让你在一个安全的网站上取得很好的成绩

相关文章

### 创建一个gRPC服务项目(grpc服务端)和一个 webapi项目(...
一、SiganlR 使用的协议类型 1.websocket即时通讯协议 2.Ser...
.Net 6 WebApi 项目 在Linux系统上 打包成Docker镜像,发布为...
一、 PD简介PowerDesigner 是一个集所有现代建模技术于一身的...
一、存储过程 存储过程就像数据库中运行的方法(函数) 优点:...
一、Ueditor的下载 1、百度编辑器下载地址:http://ueditor....