我想验证通过参数(例如:www.website.com?name=example
(发送数据与使用请求体(例如使用JSON:{name: example}
(发送数据之间是否存在任何漏洞差异。我知道使用URL参数发送数据在通过浏览器发送时会出现安全问题,但就我而言,我对数据从一个系统自动发送到另一个系统感兴趣,而无需任何浏览器和人工交互。
在url中发送数据与在请求头/正文中发送数据之间的大部分区别在于记录的内容(另一组问题是在浏览器中缓存/存储的内容,但这对您来说不是问题(。
因此,URL最明显的问题是,任何中间代理(包括负载均衡器、wafs、谁知道什么(都会记录URL参数,在大多数情况下,目标服务器也会记录。攻击者可能会访问此类日志,从而泄露潜在的敏感信息。这不仅可能是外部攻击者,也可能是参与操作的人,而不是应用程序的实际用户——这有时很重要。此外,日志将被复制到备份等。因此,最佳做法是通常不要在URL中发送敏感信息。
话虽如此,我可以想象在特定情况下,在URL中发送敏感信息的场景和补偿控制是可以接受的,但你应该仔细考虑你的威胁模型。不将浏览器用作客户端是一个良好的开端,但还远远不够。