POST请求来源

时间:2011-08-21 09:50:34

标签: php security post

有什么方法可以确切知道POST请求源自哪个服务器?

我正在尝试实施一种方法,其中我可以检查特定请求是否来自我的网站,因此这将有助于我保持网站安全

由于

4 个答案:

答案 0 :(得分:8)

听起来您正在尝试实施跨站点请求伪造保护,您需要确保请求源自Web服务器提供的HTML。不要依赖于referer头,因为它经常被防火墙剥离,并且可以被操纵。

有关如何实施此类保护的一些好消息,请参阅OWASP。基本上它是这样的:

  1. 生成安全的随机值并将其贴在用户的会话上

  2. 对于每个HTML表单,请将此值包含为隐藏值()

  3. 每当POST请求返回到您的服务器时,请检查隐藏字段中的值是否与用户会话中的值相同。如果不是,请拒绝该请求。

  4. 因为每个用户的alue是唯一的,攻击者不能简单地伪造具有预填充值的表单,并诱骗用户使用javascript自动发布它。该请求将被拒绝,因为攻击者不知道伪造形式的隐藏字段包含哪个值。

答案 1 :(得分:3)

答案 2 :(得分:1)

您想要$_SERVER["REMOTE_ADDR"]

答案 3 :(得分:1)