有什么方法可以准确知道 POST 请求来自哪个服务器?
我正在尝试实现一种方法,在该方法中我可以检查特定请求是否来 self 的网站,因此这将帮助我确保我的网站安全
谢谢
最佳答案
听起来您正在尝试实现跨站请求伪造保护,其中您需要确保请求源自从您的网络服务器传送的 HTML。不要依赖 referer header ,因为它通常在防火墙中被剥离,并且可以被操纵。
有关如何实现这种保护的一些好的资源,请参阅 OWASP。基本上它是这样的:
生成一个安全的随机值并将其粘贴到用户的 session 中
对于每个 HTML 表单,将此值包含为隐藏值 ()
每当 POST 请求返回到您的服务器时,请检查隐藏字段中的值是否与用户 session 中的值相同。如果不是,则拒绝请求。
因为每个用户的值是唯一的,所以攻击者不能简单地伪造一个带有预填充值的表单,并诱使用户使用 javascript 自动发布它。该请求将被拒绝,因为攻击者不知道在他的伪造表单中为隐藏字段包含哪个值。
关于php - POST 请求来源,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7137545/