首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >网站访问密码保护

网站访问密码保护
EN

Stack Overflow用户
提问于 2015-06-10 07:26:52
回答 2查看 2.9K关注 0票数 0

我试图创建一个密码保护的网站。这里我想做,如果用户第一次访问我的网站,然后需要插入密码,以访问我的网站。第一次输入密码时,他们可以自由访问我的网站。

这就是我如何使用javascriptphp实现的。

代码语言:javascript
复制
<?php if($page == 'index'): ?>
    <script language="Javascript">
            //prompt.
            var password;
            var correctPass = "123456"; 
            password = prompt("Enter in the password:","");

            if(password == correctPass) {
                    alert('click OK to view this site');
            } else {
                    window.location = "http://google.com"
            } 
            //->
    </script>               
<?php endif; ?>

这是可行的,但我的问题是,如果用户再次转到索引页,他们需要插入密码。

有人能告诉我怎么解决这个问题吗。谢谢。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-06-10 07:31:48

不要在JavaScript中这样做。任何人都可以查看您的源代码并查看密码。用PHP代替密码签入。然后使用$_SESSION变量在您的站点上保存状态。您还可能希望在长期访问中使用$_COOKIE变量,但在大多数情况下,通常倾向于只使用$_SESSION本身进行密码访问。

另一种方法是使用您的web服务器。例如,如果您正在使用Apache,您可以在您的网站根目录创建一个.htaccess文件来询问名称和密码。这样你甚至不需要编码任何东西。

要执行第二个选项,请在web目录的根目录中创建一个名为.htaccess的文件。在文件中放入以下内容:

代码语言:javascript
复制
AuthType Basic
AuthName "Password Protected Area"
AuthUserFile /opt/passwords/.htpasswd
Require valid-user

(其中/opt/密码是web目录之外的目录位置。它可以在您想要的任何地方,您只想确保它不在您的web目录中(否则它将可供公众查看)。

在该目录中,创建一个名为.htpasswd的文件。该文件只需使用用户名和加密密码即可。此页面将允许您使用密码加密:http://www.htaccesstools.com/htpasswd-generator/创建您的名称。只需将其粘贴到.htpasswd文件中即可。

尽管如此,如果您只使用http而不是https,则可以拦截您使用的任何密码,但是如果您以前没有使用过https,那么设置https就有点困难了。

票数 7
EN

Stack Overflow用户

发布于 2015-06-10 07:32:05

首先,您是否将普通密码放入java脚本本身?永远不要那么做,而且

if($page == 'index')

总是将结构构造为true,这样逻辑就不能使用cookie或会话

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30749768

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档