我正在尝试编写一份接受表格(基于 cookie)来拒绝/允许访问我正在开发的网站;我无论如何都不是安全专家,所以我需要一些关于如何使我的表单提交更安全,以及如何存储用户请求的原始页面以便他们可以在接受后重定向到正确页面的提示。
这是我编写的基本脚本:
<?php
if(isset($_POST['accept'])) {
setcookie ('accept', '1');
header('Location: http://www.the_page_that_was_requested');
exit();
} elseif(isset($_POST['decline'])) {
setcookie('accept', '0');
exit();
}
?>
Run Code Online (Sandbox Code Playgroud)
和形式:
<form action='' method ='post'>
<ul>
<li> <input type= 'radio' name = 'accept' value = 'accept' /> I accept </li>
<li> <input type= 'radio' name = 'decline' value = 'decline' /> I decline </li>
<li> <input type = 'submit' value = 'Submit' name = 'submit' /> </li>
</ul>
Run Code Online (Sandbox Code Playgroud)
我的第一篇文章可能还不够清楚:
我想使用它的网站是 WP 上托管的网络漫画。该漫画有“成熟”的内容(暴力、语言,我只想使用 cookie 作为一种机制,让读者“同意”他们将要观看此类内容。是的,我考虑过使用 $_SESSION这样做,但在这种情况下,如果有人愿意“伪造”他们查看此类内容的意愿,我就不会关心他们是否有权访问 cookie。
至于安全问题,我只想确保我的表单是安全的,而不是让我的网站容易受到某种简单的利用。
这主要是出于隐私考虑。如果我在 Gmail(或任何其他电子邮件提供商)上打开一封包含网站链接的电子邮件,并且最终点击了该链接,Gmail 是否会发送引用标头?(即,目标网站会知道我来自 Gmail?他们会知道我点击链接时使用的电子邮件地址吗?)
最后,如果他们这样做,有什么办法可以禁用它吗?
我需要尝试欺骗HTTP_REFERER传递给我的另一个页面,以便在目标页面中,我可以确定请求是从"正确"页面进入并执行适当的逻辑.
TIA公羊
在以下情况下,HTTP引用者将是什么:
我似乎无法找到答案,如果我不能在这里得到答案,那么我将只是制作页面并测试它.
在登录您的网站后,特别是在PHP中,是否应该将用户返回到原始页面,是否有"最佳实践"?例如,如果我在未登录时查看StackOverflow问题,如果我登录,您将如何确保我回到此问题?
根据我的研究,似乎有很多建议围绕$ _SERVER ['HTTP_REFERER']变量.基本上,您注意引用并将其存储在会话中,然后在完成后重定向回该页面.
这个问题是HTTP_REFERER充其量是不可靠的.
这是由用户代理设置的.并非所有用户代理都会设置此功能,有些用户可以将HTTP_REFERER修改为功能.简而言之,它无法真正被信任.
- [ http://php.net/manual/en/reserved.variables.server.php]
对引用者重定向到站点其他区域的任何编辑都将通过例行权限检查来处理.如果引用被消除,则可以将用户简单地重定向到站点的主页而不是它们来自的页面.这似乎是不必要的用户敌意,我希望有更好的方法来处理这个问题.
我如何知道nginx变量$ http_referer何时未设置或为空?
我收到一些没有http referer的请求.在nginx日志中,$ http_referer显示如下:" - ".我想做的是"返回403;" 如果$ http_referer未设置或为空,如本例所示.
谢谢!
我希望在PHP中获得完整的引用URL.例如,如果我从谷歌搜索到mywebsite,$_SERVER['REFERER']只给我www.google.com,但我想要像www.google.com/search?q=KEYWORD
Google Analytics为许多搜索引擎提供了此功能.我需要获取" / search?q = KEYWORD "查询字符串.
我正在做一个远程脚本-src
<script src="http://thirdparty.com/test.js"></script>
Run Code Online (Sandbox Code Playgroud)
我不想将我的http referer标头发送到thirdparty.com.我该怎么做?
什么request.referer时候不返回任何内容,这是否始终意味着访问者没有通过链接执行请求 - 即她以某种方式手动输入所请求页面的地址?
还是有其他情况下request.referer返回nil(授予请求成功)?
PHP错误日志通常如下所示:
[Tue Sep 02 15:46:13 2014] [error] [client 192.168.0.105] blah, blah, ... , referer: https://192.168.0.21/blah/blah
[Tue Sep 02 15:46:13 2014] [error] [client 192.168.0.105] blah, blee, ... , referer: https://192.168.0.21/blah/blee
Run Code Online (Sandbox Code Playgroud)
我怎样才能让它们看起来像这样?
[Tue Sep 02 15:46:13 2014] [error] [client 192.168.0.105] blah, blah, ...
[Tue Sep 02 15:46:13 2014] [error] [client 192.168.0.105] blah, blee, ...
Run Code Online (Sandbox Code Playgroud)
我尝试了$_SERVER['HTTP_REFERER']='';但是(毫不奇怪)没有帮助.