我创建了一个简单的登录页面来访问邮件发送表单。登录页面工作并重定向到sender.html。我想要的是不让其他人在没有登录的情况下访问sender.html或send.php。我已经尝试过了
<?php
$referrer = $_SERVER['HTTP_REFERER'];
if ($referrer != "http://www.example.com/login.html") {
header('Location: http://www.example.com/login.html');
} ;
?>
进入sender.html的开头,但它不起作用。我也尝试将重定向规则添加到.htaccess但是在登录后不允许访问页面。 我是初学者,但已经花了一段时间来解决这个问题,非常感谢你的帮助。
答案 0 :(得分:0)
将文件名从sender.html
更改为sender.php
。当文件具有html扩展名时,它不会处理php。
此外,您可以修改.htaccess
文件以告知服务器将.html文件作为.php文件处理,但我认为更改文件扩展名更容易。
答案 1 :(得分:0)
首先,检查referer变量不是一个好方法;攻击者可以伪造那个头。简单的方法是使用基本身份验证来保护您感兴趣的两个页面。
示例.htaccess:
AuthType Basic
AuthName "Restricted Files"
AuthUserFile /usr/local/apache/passwd/htpasswd
Require valid-user
(有关详细信息以及如何创建包含用户的htpasswd文件,请参阅http://httpd.apache.org/docs/2.2/howto/auth.html)