php - POST 请求来源

标签 php security post

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

我正在尝试实现一种方法,在该方法中我可以检查特定请求是否来 self 的网站,因此这将帮助我确保我的网站安全

谢谢

最佳答案

听起来您正在尝试实现跨站请求伪造保护,其中您需要确保请求源自从您的网络服务器传送的 HTML。不要依赖 referer header ,因为它通常在防火墙中被剥离,并且可以被操纵。

有关如何实现这种保护的一些好的资源,请参阅 OWASP。基本上它是这样的:

  1. 生成一个安全的随机值并将其粘贴到用户的 session 中

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

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

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

关于php - POST 请求来源,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7137545/

相关文章:

php - 根据数据库值从选项中进行选择

php - Python POST 文件到 PHP

node.js - 如何将 Node 中的 multipart/form-data POST 请求转发到另一个服务

php - 从 Windows 32 位移动到 Linux 64 位,base_convert() 问题

php - 当我访问我的 magento 网站时收到 php 错误

linux - 如何阻止 Apache 列出我的用户目录的内容

php - 如何防止PHP中的SQL注入(inject)?

c - 放弃作为沙盒的常规非 root 用户的权限?

php - AFNetworking PostPath php 参数为空

php - Laravel 5.1 本地化工厂播种机