繁体   English   中英

如何在php中获取发布请求的引荐来源网址?

[英]How to get the referrer url of post request in php?

我正在开发一个php网站,允许用户添加带有说明,图像等的产品。我正在使用POST方法接收用户输入。 但是,如果用户知道表单输入名称和表单的操作链接,则可以使用javascript发送不断的请求并阻塞我的数据库。

因此,如果我能以某种方式从POST请求发出的地方获取URL,则可以避免这种情况。 如果POST请求来自我网站的网址,我只能将信息输入数据库。

我知道也可以使用验证码来防止这种攻击,但是我想要一种替代方法,主要是因为验证码很痛苦。

有什么办法可以不用验证码吗? 也许会议?

您可以使用标头仅允许来自您网址的帖子:

    header('Access-Control-Allow-Origin: http://yoururl.com');

干杯

您可以检查以下内容:

$_SERVER['HTTP_REFERER'] 

可变的,但是这可以被伪造,所以要小心。

您最好使用一些隐式输入,这些隐式输入的值必须等于要进行插入操作的设置字段的值(此技术的名称此刻使我无所适从)。

<input type="text" id="areyouhuman" name="areyouhuman" value="123456001" />

用CSS隐藏它:

#areyouhuman{
     display:none;
}

希望有帮助吗?

PS我也讨厌验证码!

为表单提供安全性的最佳方法可能是在表单中添加CSRF令牌( http://en.wikipedia.org/wiki/Cross-site_request_forgery )。

它的工作原理是每次渲染表单时都会生成一个伪随机代码,并将其存储在会话变量中,并将与隐藏输入相同的代码放入表单中。

因此,当用户发布表单时,您可以验证以查看csrf令牌是否相同。

关于此还有另一个线程,因此您可以看一下( 如何使用PHP正确添加CSRF令牌

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM