使页面只能通过密码访问

时间:2012-08-09 18:49:58

标签: html html5 login

使用用户名/密码访问页面的最简单方法是什么?在学校我学会了使用sql和java在服务器端执行此操作。我想知道有没有办法只在客户端做到这一点?

编辑:lol ......根据回复,我可能应该说为什么我指定了客户端。我被要求在我们的公司网站上加载一个额外的页面,该页面应该可以帮助我们的一些员工。我没有设计这个额外的页面,并且我被要求通过一个非常简单的登录来进行此操作。当然,我需要与我的上级确认客户端登录是否足够,我只想知道是否可以完成如果他们认为这不是那么重要。页面本身在网站上没有链接,所以除非有人知道它在那里或决定窥探,否则没有人会知道它在那里。

6 个答案:

答案 0 :(得分:2)

您可以将页面保存到受.htaccess文件保护的目录中。

这将是服务器端(您必须将.htaccess文件上传到目录中)。

但客户端?嗯,我想象的唯一的事情就是创建一个位置为DIV的DIV,它将覆盖你所有的页面内容。

询问用户和密码,然后使用Javascript(这是客户端)检查它们,然后将属性“display:none”添加到包含登录视图的DIV。

这会隐藏登录视图并显示其下方的页面。

在我看来,这是一个巨大的安全问题。我可以使用Firebug轻松编辑您的网页,并在不输入密码的情况下将Display:none添加到div中。

但是,由于Javascript中的密码是IS,我只需查看源代码即可查看。

答案 1 :(得分:1)

那么你可以尝试使用HTML输入的基本JavaScript假人,它会以某种方式提供密码保护的轻微错觉。否则,创建一个HTML表单并使用PHP Sessions。这些可能是周围教程最多的语言,因此不需要花那么长时间才能完成它。

答案 2 :(得分:1)

您不能仅在客户端安全地执行此操作,它需要您在浏览器内执行用户身份验证。这意味着你的整个用户群必须以某种形式加载到浏览器内存中,可能是javascript,这使得它不安全。

对于一个简单的身份验证机制,它涉及服务器的最小程度,请查看Basic Authentication

答案 3 :(得分:1)

最简单的可能是服务器端apache身份验证。使用这两个生成器: http://www.htaccesstools.com/htaccess-authentication/
http://www.htaccesstools.com/htpasswd-generator/

就在客户端,使用javascript它永远不够安全。但有办法:

if( ​prompt('Enter password'​)​ == 'password' )
{
    // we are okay
}

else
{
    // password is wrong
}​

有关更强大的示例,请使用用户名http://jsfiddle.net/7mZYQ/2/

答案 4 :(得分:0)

不,它不能在客户端完成。至少不是以安全的方式。客户端(密码)验证很容易绕过,因为用户可以获得线索(例如输入正确密码时要显示的密码和/或内容)。

答案 5 :(得分:0)

如果您考虑“客户端”的含义,您就会明白为什么不可能。在客户端,处理所有信息,并将所有数据存储在客户端的计算机上。因此,为了在客户端完全检查密码,您必须将整个用户名密码列表保存到您的站点与之交互的每台计算机上。

请记住,任何“客户端”本质上都不如服务器端那么安全。所以,即使你可以这样做,也可能是个坏主意。


现在,说到这里,你可以做到这一点:

提出密码(请注意,您必须使用主密码,而不是个人密码),哈希密码,并将散列密码存储在变量或其他内容中。它可能听起来不安全,但是如果你正在对pw进行哈希处理,你可以向每个人发送带有密码的个性化电子邮件,这样就不会让它更容易破解。散列是一种单向操作。没有办法对它进行逆向工程。但是,确保将存储的密码设置为常量,或者有人可以在最后一分钟更改其哈希密码的值以匹配您存储的密码。使用css为您的数据提供css规则Display:none;,以便隐藏它。现在提示用户输入密码。然后,获取该密码并通过与创建密码时相同的加密方式运行该密码。如果该值与您存储的值匹配,宾果游戏。只需还原您的display:none;,就可以了。

虽然我猜这仍然留下了一个问题,就是让你的display:none消失了。猜猜你也必须加密页面上的数据。