这是我的疑问:我想创建一个登录页面来访问一个html页面(我将使用一个表单和一个MySQL数据库)。
问题是,如果有人知道html页面的名称,他们可以直接去那里,而不必登录,这是我不想要的。我该如何防止这种情况?
示例:我有一个 abc.html 页面,我创建了一个 login.php 页面来访问abc。但如果我知道abc页面的名称和地址,我可以在我的导航栏上输入: www.somesite / abc.html ,我可以在不登录的情况下进入abc页面。 / p>
答案 0 :(得分:1)
如果您不愿意将您的网页从abc.html
重命名为abc.php
,那么最好的选择就像Peter提到的那样,可能会使用htaccess来为页面提供密码(当然,前提是您提供的) webserver正在运行Apache)。
通过使用此方法,您无需创建login.php
页面并打开自己的各种漏洞(大多数需要密码的“自定义”登录脚本几乎不会写入安全的方式)。
以下是使用htaccess创建受密码保护的页面的方法:
在您网站的根目录中创建.htaccess
文件,并在要保护的目录中创建.htpasswd
编辑.htaccess
文件,使其包含以下代码:
AuthType Basic AuthName "Some message to be displayed to the user" AuthUserFile /your/path/to/.htpasswd Require valid-user
.htpasswd
文件,使其包含您的凭据列表。这些是行分隔的,因此如果您希望多个用户访问它,只需在新行上添加新用户即可。语法如下:username:password
答案 1 :(得分:0)
您可以使用多种选项。
假设您使用Apache作为网络服务器,您可以将其配置为需要密码本身,而无需单独的登录页面(http://httpd.apache.org/docs/2.2/howto/auth.html)。
否则,一旦验证用户(http://php.net/manual/en/reserved.variables.session.php),您就可以在登录页面上使用$_SESSION
变量,然后在html
页面上检查该变量,如果它不存在则重定向