【问题标题】:how to filter who sends data from html file containing a form sent via post to a php file如何过滤谁从包含通过 post 发送到 php 文件的表单的 html 文件中发送数据
【发布时间】:2015-08-19 04:14:23
【问题描述】:

因此,当我尝试通过 post 从 html 文件表单发送数据并将操作设置为我的 PHP 文件时,它会在未验证发送者的情况下接收数据。所以我想过滤发送到我想要或受信任的站点或 html 文件的数据。

【问题讨论】:

  • 那么各大网站都用什么方法呢?或者他们使用ajax请求,它更容易和更可靠?

标签: php html forms post


【解决方案1】:

您需要 CSRFP - 跨站点请求伪造保护。

我过去成功使用过https://github.com/deceze/Kunststube-CSRFP,非常容易实现和由这里的成员编写

【讨论】:

  • 所以我必须使用 repo 中的代码,这是唯一的方法吗?以及各大网站针对这个问题使用什么方法?
  • 有很多可用的 CSRFP 库,但是可以使用那个,只需下载它,将其添加到您的代码库并配置它 - 参见 github.com/deceze/Kunststube-CSRFP#simple-usage 的示例我不知道具体是哪个图书馆主要网站使用,请参阅 Jess Nielsen 对其他人的回复中的 OWASP 链接,但它们都遵循相同的基本原则,即在表单中添加令牌,然后在提交时进行验证。
【解决方案2】:

如果您使用 ajax 发布请求,那么您应该根据您的框架检查 isAjaxRequest,或者您应该尝试 $_SERVER 的 HTTP_REFERER 来检查请求来自哪里。

【讨论】:

  • 它不是一个 ajax post 请求我使用一个简单的 html 表单和 post 方法
【解决方案3】:

要验证表单的发件人,您可以使用令牌。

这种做法在 CSRF 保护中很常见。大多数站点使用同步器令牌模式。它添加了一个隐藏的输入字段,其中包含一个 md5 哈希,您的站点也存储在内存中。

更多信息在这里:OWASP CSRF

【讨论】:

    猜你喜欢
    • 2011-05-12
    • 1970-01-01
    • 1970-01-01
    • 2016-02-19
    • 2017-06-22
    • 2019-09-22
    • 1970-01-01
    • 2012-07-25
    • 1970-01-01
    相关资源
    最近更新 更多