如何防止有人访问html页面,除非他们有登录?

时间:2014-10-20 22:46:24

标签: php html

这是我的疑问:我想创建一个登录页面来访问一个html页面(我将使用一个表单和一个MySQL数据库)。

问题是,如果有人知道html页面的名称,他们可以直接去那里,而不必登录,这是我不想要的。我该如何防止这种情况?

示例:我有一个 abc.html 页面,我创建了一个 login.php 页面来访问abc。但如果我知道abc页面的名称和地址,我可以在我的导航栏上输入: www.somesite / abc.html ,我可以在不登录的情况下进入abc页面。 / p>

2 个答案:

答案 0 :(得分:1)

如果您不愿意将您的网页从abc.html重命名为abc.php,那么最好的选择就像Peter提到的那样,可能会使用htaccess来为页面提供密码(当然,前提是您提供的) webserver正在运行Apache)。

通过使用此方法,您无需创建login.php页面并打开自己的各种漏洞(大多数需要密码的“自定义”登录脚本几乎不会写入安全的方式)。

以下是使用htaccess创建受密码保护的页面的方法:

使用htaccess

进行密码保护
  1. 在您网站的根目录中创建.htaccess文件,并在要保护的目录中创建.htpasswd

  2. 编辑.htaccess文件,使其包含以下代码:

  3. AuthType Basic
    AuthName "Some message to be displayed to the user"
    AuthUserFile /your/path/to/.htpasswd
    Require valid-user
    
    1. 编辑.htpasswd文件,使其包含您的凭据列表。这些是行分隔的,因此如果您希望多个用户访问它,只需在新行上添加新用户即可。语法如下:
    2. username:password
      
      1. 但密码不应以纯文本格式存储。您需要使用htpasswd生成器such as David Walsh's here来创建加密密码。

答案 1 :(得分:0)

您可以使用多种选项。

假设您使用Apache作为网络服务器,您可以将其配置为需要密码本身,而无需单独的登录页面(http://httpd.apache.org/docs/2.2/howto/auth.html)。

否则,一旦验证用户(http://php.net/manual/en/reserved.variables.session.php),您就可以在登录页面上使用$_SESSION变量,然后在html页面上检查该变量,如果它不存在则重定向