1

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

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

4

6 回答 6

2

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

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

但是客户端呢?嗯,我唯一想的就是创建一个带有 position: fixed 的 DIV,它将覆盖您的所有页面内容。

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

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

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

但是,由于密码是 Javascript 中的,我无论如何都可以只查看源代码来查看它。

于 2012-08-09T18:56:47.023 回答
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/

于 2012-08-09T19:00:14.043 回答
1

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

对于在最小程度上涉及服务器的简单身份验证机制,请查看基本身份验证

于 2012-08-09T18:54:35.783 回答
1

好吧,您可以尝试一个带有 HTML 输入的基本 JavaScript 虚拟对象,它会以某种方式提供密码保护的轻微错觉。否则,创建一个 HTML 表单并使用 PHP Sessions。这些可能是拥有最多教程的语言,所以你不会花那么长时间来完成它。

于 2012-08-09T18:53:44.393 回答
0

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

还要记住,任何“客户端”本质上都没有服务器端那么安全。因此,即使您可以这样做,也可能是个坏主意。


现在,话虽如此,您可以这样做:

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

虽然我想这仍然会留下有人只是把你display:none赶走的问题。猜猜你也必须加密页面上的数据。

于 2012-08-09T18:56:12.593 回答
0

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

于 2012-08-09T18:54:42.037 回答