[英]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.