- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我知道 ASP.NET MVC 中的防伪 token 是如何工作的。但仍然不清楚一些场景。我在下面提到的一个。
提交包含以下信息的帖子请求
在到达服务器之前,黑客修改了表单数据(名字和姓氏)而 token 信息保持不变。
在这种情况下,我们如何保证提交的数据不加任何修改地安全到达服务器
其实这个问题是面试官问的。我和我的同事讨论过,我也在谷歌上搜索过。由于我找不到关于此的清晰信息,所以我想在这里提问。
我不确定这是否是一个有效的问题。如果是,任何帮助将不胜感激
最佳答案
这里混合了多种东西。混淆是围绕不同保护的目的,所以让我试着弄清楚这一点。
基本威胁如下。受害者用户登录到受害者网站 victim.com。同时(比如在另一个浏览器选项卡中)他访问了一个恶意网站 malicious.com,该网站想要利用 victim.com 中的 CSRF。为此,malicious.com 让用户将所需的参数发布到 victim.com 以调用显然受害者用户不想执行的特定功能。这是 CSRF 的基本案例,利用现有的用户 session ,malicious.com 通过受害者用户在 victim.com 上执行了一些操作。
这是被阻止的,例如,如果使用了 antiforgerytoken,因为 malicious.com 将无法向 victim.com 发送正确的 token ,因此请求将被拒绝。
请注意,这与合法的请求内容无关。
另一个问题是确保请求在发送时被接收,即。数据是一样的。这通常通过使用 HTTPS 来实现,HTTPS 提供消息完整性和加密(以及其他)。因此,如果使用 HTTPS,则不可能在传输过程中更改数据。
当然,如果攻击者控制客户端或服务器(更准确地说,TLS 端点,并不总是服务器),即。 TLS channel 之外的任何内容,那么攻击者就可以修改数据。但这意味着要控制客户。例如,如果您在客户端上运行本地代理(Fiddler、Burp、ZAP 代理等),您可以执行此操作——然后您可以更改请求中的任何数据,这就是渗透测试人员的工作方式。但是,没有这种控制级别的攻击者将无法执行此操作。
如果没有 HTTPS,请求(顺便说一句还有响应)完整性和加密是难以解决的问题。解决方案是 HTTPS。 :)
关于c# - 如何使用防伪 token 识别帖子数据被黑客入侵,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49082407/
当我尝试在 ASP.net Web 应用程序上运行性能测试时,我总是收到“防伪 cookie token 和表单字段 token 不匹配”。或者“无法解密防伪 token 。如果此应用程序由网络场或集
我有一个发布到 Azure 的 MVC Web 应用程序。由于在编辑 View 中包含@html.antiforgerytoken(),每当我单击编辑操作链接时,我都会收到错误。所以我删除了 View
我有 2 个 Web 应用程序项目,都位于 TFS 源代码管理中。第一个项目不会导致 AntiForgery token 出现问题。 这是错误 System.Web.WebPages.dll 中发生“
我有一个应该是 iFramed 的 MVC View 。它的多个实例可能在同一个主机页面中被 iFramed。在我看来,我有这个: @Html.AntiForgeryToken() 我用它来尝试确保对
我们使用 ASP.NET MVC 的默认防伪技术。最近一家安全公司对表格进行了扫描,并注意到他们可以多次使用相同的 _RequestVerificationToken 组合(cookie + 隐藏字段
我在使用防伪 token 时遇到问题 :(我已经创建了自己的 User 类,它运行良好,但现在每当我转到 /Account/Register 页面时都会收到错误消息。错误是: A claim of t
我正在使用 ASP.NET Identity 登录的应用程序中开发注销功能。我可以成功登录,但是当我注销然后尝试再次登录时,我收到以下消息: The provided anti-forgery tok
定义 ValidateAntiForgeryToken 属性时。盐的复杂度应该是多少? 例如,超过 X 个字符的字母数字字符是否合适?是否也应该有符号。 [ValidateAntiForgeryTok
我有一个问题,我最近在我的所有表单中都放置了防伪 token ,并在我的 Controller 中放置了 ValidateAntiForgeryToken 属性。 但我的用户经常填写表格,然后返回浏览
在没有 ssl 的情况下向服务器发出请求时,我实际上可以以纯文本形式看到 MVC3 框架生成的验证 token key 。 此 key 存储在名为:_RequestVerificationToken_
我们在 ASP.NET MVC 4 站点上使用 Amazon EC2 Elastic Beanstalk,并且在用户尝试登录后收到错误消息: The anti-forgery token could
我有一个表格: @using (Html.BeginForm(new { ReturnUrl = ViewBag.ReturnUrl })) { @Html.AntiForgeryToken() @H
在 nim 中,jester 模块提供 Web API 服务,我对此表示感谢,但是我们是否支持跨站点防伪造 token ? (针对CSRF攻击) 就像 ASP.net 提供的那样。 最佳答案 没有。有
在 ASP.NET MVC 1.0 中,有一个新功能用于处理跨站请求伪造安全问题: [ValidateAntiForgeryToken] public ViewResult SubmitUpdat
我正在运行 IIS7、.NET 4.5 并且有一个 MVC2 站点。 我收到错误消息“此操作需要 IIS 集成管道模式。”当我导航到一个页面(一个 aspx View )时,上面有一个带有 AntiF
我收到以下错误: {"A claim of type 'http://schemas.xmlsoap.org/ws/2005/05/identity/claims/nameidentifier' or
我的 Web Api 站点有一个 AccountController,它使用登录的默认实现: // POST: /Account/Login [HttpPost] [AllowAnonymous] [
我正在尝试在 VS2012 中为 MVC 站点进行 Web 测试。 其中一种情况是登录并浏览产品列表,选择您想要的产品并进入购买页面。 问题是当 web 测试运行时,我收到一个关于防伪 token 的
您好,我可以像这样使用 vue js axios 将帖子发送到 Asp .NET Core 2.2 中的 Controller axios({
我正在使用 ELMAH 来处理我的 MVC 站点中的错误,并且在过去的几周里我注意到我抛出了一些 CryptographicExceptions。消息是: System.Security.Crypto
我是一名优秀的程序员,十分优秀!