所以我有一个提交功能的页面。单击“提交”后,您将进入名为send.php的站点 我不希望人们能够刷新网站,这样就可以针对垃圾邮件发送两次或更多相同的答案。我认为这样做的一种方法是确保它们来自提交站点,如果可能的话。另一种方法是,如果他们试图刷新,也可以重定向它们。 有没有办法做到这一点?或者另一种解决我的问题的方法
答案 0 :(得分:0)
查看HTTP_REFERER变量。它将告诉您用户访问您的网站之前所使用的网站。
它会为您提供如下信息:
192.168.1.10 - - [16 / Apr / 2008:16:12:36 +1200]“GET / php-http-referer-variable / HTTP / 1.1”200 2014 “http://www.websitefromexample.com/”Mozilla / 5.0(兼容; Konqueror中/ 3.5; Linux)KHTML / 3.5.8(如Gecko)“
答案 1 :(得分:0)
$ _ SERVER [' HTTP_REFERER']应该包含引用页面。但是:
成功收到提交后进行重定向应该会很好,因为它会将用户转移到提交处理代码之外(假设您重定向到其他地方..)
但是,在进行原始的合法提交时,有黑帽子的人可能仍会将请求记录到服务器。并重复使用它。所以重定向方法应该足以让你保持安全"来自普通用户,但不是来自想要来垃圾邮件的人。它就像你的网站所在的展位并接受提交的内容,然后礼貌地告诉提交提交的人去那里"移动到那里"。没有锁或任何东西。这个人甚至可能会忽略继续前进的请求。
如果你:
然后你在你的摊位上放了一个舱口,只有那些知道给他们的密码的人才能打开。您已限制用户访问提交处理的方式。秘密值应在使用后丢弃,否则可以重复使用并失去其目的..
用户仍然可以在表单页面和提交/表单目标页面之间切换以接收新的秘密值,并且每次都允许进行新的提交。如果您想限制允许用户提交的提交数量,那么您应该跟踪用户最近请求表单页面的次数。
..当然,如果需要,请在处理代码中查找禁用词等。