【发布时间】:2015-08-19 04:14:23
【问题描述】:
因此,当我尝试通过 post 从 html 文件表单发送数据并将操作设置为我的 PHP 文件时,它会在未验证发送者的情况下接收数据。所以我想过滤发送到我想要或受信任的站点或 html 文件的数据。
【问题讨论】:
-
那么各大网站都用什么方法呢?或者他们使用ajax请求,它更容易和更可靠?
因此,当我尝试通过 post 从 html 文件表单发送数据并将操作设置为我的 PHP 文件时,它会在未验证发送者的情况下接收数据。所以我想过滤发送到我想要或受信任的站点或 html 文件的数据。
【问题讨论】:
您需要 CSRFP - 跨站点请求伪造保护。
我过去成功使用过https://github.com/deceze/Kunststube-CSRFP,非常容易实现和由这里的成员编写
【讨论】:
如果您使用 ajax 发布请求,那么您应该根据您的框架检查 isAjaxRequest,或者您应该尝试 $_SERVER 的 HTTP_REFERER 来检查请求来自哪里。
【讨论】:
要验证表单的发件人,您可以使用令牌。
这种做法在 CSRF 保护中很常见。大多数站点使用同步器令牌模式。它添加了一个隐藏的输入字段,其中包含一个 md5 哈希,您的站点也存储在内存中。
更多信息在这里:OWASP CSRF
【讨论】: