如何防范请求头篡改?

3

我不确定这种攻击的名称,但发生的情况是我的POST方法请求可以被像(burp suite)这样的工具捕获并将POST更改为GET。

之后,进程仍将继续,但现在它会在URL中显示参数及其值。

我该如何防御这种攻击?

网站使用ASP.NET C#。


是的,这是中间人攻击。我正在使用https。如果问题很明显,我很抱歉,但我不知道该看什么。从服务器的角度来看:当您期望POST时,您可能不允许GET。
  • 我会研究一下。非常感谢!
- kberStill
我已经添加了一个答案,并在底部解释了为什么在这里担心GET vs POST不是值得担心的事情。 - Marc Gravell
1个回答

3
Burp Suite是一种具有注入/操作能力的“中间人”(MITM)代理。如果您的网站使用http(而不是https),那么是的,您完全处于流量经过的每个中介方的掌控之下。请立即更改您的网站使用有效证书的https。
对于https的工作,您需要故意破坏您的机器,通过安装一个可疑的根证书颁发机构来为想要进行中间人攻击的站点发布伪造证书。这只有在您破坏了您的机器之后才能通过您的浏览器安全系统。
从服务器的角度来看,依赖客户端已经被攻击的攻击并不是一个有趣的攻击。您能合理地做的只是保护未被攻击的客户端。通过使用https和禁用http(非TLS)。您可以拒绝GET请求,如果您期望的是POST请求-但是这并不改变GET已经发生的事实。但是请注意:
  • MITM代理已经可以读取POST变量,而无需将其更改为GET:它完全控制数据
  • 在MITM代理和您的服务器之间的其他中介方无论是GET还是POST都不能读取数据,只要它是https(这就是为什么您需要禁用http而不仅仅是启用https)。
  • 在此处,使用GET与POST只改变了出现在自己服务器日志中的内容...并且无论您在那时如何响应请求,都无关紧要:它已经被记录下来,即使您返回404、500或任何其他错误。

这是很棒的知识。非常感谢!你说得对,我只是启用了https,http绑定仍在运行。我会将http移除并保留https。 - kberStill
@kber请注意,将HTTP客户端重定向到HTTPS并启用Strict Transport Security可能会很有用。 - mason

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接