如何使用防伪令牌识别 Post 数据被黑客入侵
How to identify Post Data is hacked using anti-forgery token
我知道 ASP.NET MVC works.But 中的防伪标记如何在少数情况下仍然不清楚。我在下面提到的一个。
使用以下信息提交 post 请求
- cookie 令牌(防伪令牌)
- 表单数据(名字和姓氏)
- 表单输入隐藏令牌(antiforgerytoken)
黑客在到达服务器之前修改了表单数据(名字和姓氏),但令牌信息未更改。
在这种情况下,我们如何确保提交的数据安全到达服务器而无需任何修改
其实这个问题是面试官问的。我和我的同事讨论过,我也在 Google 中搜索过。由于我找不到这方面的明确说明,所以我想在这里问一下。
我不确定这是否有效question.If是的,任何帮助将不胜感激
这里混杂了很多东西。混淆是围绕不同保护的目的,所以让我试着弄清楚。
CSRF 和防伪令牌
基本威胁如下。受害者用户登录到受害者网站 victim.com。同时(比如在另一个浏览器选项卡中)他访问了一个恶意网站 malicious.com,该网站想要利用 victim.com 中的 CSRF。为此,malicious.com 为用户 post 提供了 victim.com 所需的参数,以调用显然受害用户不想执行的特定功能。这是 CSRF 的基本情况,利用现有的用户会话,malicious.com 通过受害用户对 victim.com 执行了一些操作。
这是被阻止的,例如如果使用 antiforgerytoken,因为 malicious.com 将无法将正确的令牌发送到 victim.com,因此请求将被拒绝。
请注意,这与合法的请求内容无关。
请求的完整性
另一个问题是确保请求在发送时收到,即。数据是一样的。这通常通过使用 HTTPS 来实现,HTTPS 提供消息完整性和加密(以及其他)。因此,如果使用 HTTPS,则不可能在传输过程中更改数据。
当然,如果攻击者控制客户端或服务器(更准确地说,TLS 端点,并不总是服务器),即。 TLS 通道之外的任何内容,那么攻击者就可以修改数据。但这意味着要控制客户。例如,如果您 运行 客户端上的本地代理(Fiddler、Burp、ZAP 代理等),您可以执行此操作 - 然后您可以更改请求中的任何数据,这就是渗透测试人员的工作方式。但是,没有这种控制级别的攻击者将无法执行此操作。
如果没有 HTTPS,请求(顺便说一句还有响应)完整性和加密是难以解决的问题。解决方案是 HTTPS。 :)
我知道 ASP.NET MVC works.But 中的防伪标记如何在少数情况下仍然不清楚。我在下面提到的一个。
使用以下信息提交 post 请求
- cookie 令牌(防伪令牌)
- 表单数据(名字和姓氏)
- 表单输入隐藏令牌(antiforgerytoken)
黑客在到达服务器之前修改了表单数据(名字和姓氏),但令牌信息未更改。
在这种情况下,我们如何确保提交的数据安全到达服务器而无需任何修改
其实这个问题是面试官问的。我和我的同事讨论过,我也在 Google 中搜索过。由于我找不到这方面的明确说明,所以我想在这里问一下。
我不确定这是否有效question.If是的,任何帮助将不胜感激
这里混杂了很多东西。混淆是围绕不同保护的目的,所以让我试着弄清楚。
CSRF 和防伪令牌
基本威胁如下。受害者用户登录到受害者网站 victim.com。同时(比如在另一个浏览器选项卡中)他访问了一个恶意网站 malicious.com,该网站想要利用 victim.com 中的 CSRF。为此,malicious.com 为用户 post 提供了 victim.com 所需的参数,以调用显然受害用户不想执行的特定功能。这是 CSRF 的基本情况,利用现有的用户会话,malicious.com 通过受害用户对 victim.com 执行了一些操作。
这是被阻止的,例如如果使用 antiforgerytoken,因为 malicious.com 将无法将正确的令牌发送到 victim.com,因此请求将被拒绝。
请注意,这与合法的请求内容无关。
请求的完整性
另一个问题是确保请求在发送时收到,即。数据是一样的。这通常通过使用 HTTPS 来实现,HTTPS 提供消息完整性和加密(以及其他)。因此,如果使用 HTTPS,则不可能在传输过程中更改数据。
当然,如果攻击者控制客户端或服务器(更准确地说,TLS 端点,并不总是服务器),即。 TLS 通道之外的任何内容,那么攻击者就可以修改数据。但这意味着要控制客户。例如,如果您 运行 客户端上的本地代理(Fiddler、Burp、ZAP 代理等),您可以执行此操作 - 然后您可以更改请求中的任何数据,这就是渗透测试人员的工作方式。但是,没有这种控制级别的攻击者将无法执行此操作。
如果没有 HTTPS,请求(顺便说一句还有响应)完整性和加密是难以解决的问题。解决方案是 HTTPS。 :)