阻止直接访问html页面

时间:2015-02-25 23:57:52

标签: php html

我创建了一个简单的登录页面来访问邮件发送表单。登录页面工作并重定向到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但是在登录后不允许访问页面。 我是初学者,但已经花了一段时间来解决这个问题,非常感谢你的帮助。

2 个答案:

答案 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

相关问题