[英]Is there a way to password protect HTML pages without using a server side language?
我有一系列相互链接的网页,我想通过要求用户提供登录名和密码来限制对这些页面的访问。 但是,我的主机帐户目前没有为服务器端脚本提供任何工具 - 有什么方法可以仅使用客户端脚本来实现此目标?
我想知道以下程序是如何工作的 -
http://www.myzips.com/software/HTML-Password.phtml
澄清:感谢您的投入。 但是,如果我正在配置 Web 服务器,那么用户是否有可能输入用户名和密码?
无法创建安全的客户端脚本。 如果用户有权访问它,则它是不安全的。
如果您的主机正在运行 apache,您可以使用 .htaccess 来保护文件夹,在 IIS 上,您可以通过目录安全来执行相同的操作。
以下是我自己实现的使用加密的此问题的有效解决方案。
这里的一些用户建议使用基于加密的方法来保护客户端密码。 我也需要这个功能,所以我自己实现了。 密码使用 PBKDF2 散列,然后使用 AES256 加密页面。
该工具托管在这里:
https://www.maxlaumeister.com/pagecrypt/
此处提供源代码:
https://github.com/MaxLaumeister/pagecrypt
项目描述,来自项目页面:
PageCrypt - 密码保护 HTML
此工具可让您安全地密码保护 HTML 文件。 与其他密码保护工具不同,此工具:
没有服务器端组件(此工具及其受密码保护的页面完全在 javascript 中运行)。
使用强加密,因此无法绕过密码保护。
您只需选择一个 HTML 文件和密码,您的页面就会受到密码保护。
您可以使用以下内容创建文件 .htaccess:
AuthUserFile path/to/password.txt
AuthGroupFile /dev/null
AuthName "Acces Restreint"
AuthType Basic
<Limit GET POST>
require valid-user
</Limit>
然后您必须创建 .htpasswd 文件。
可以实现这一点,尽管您可能会发现简单地切换到不同的托管服务提供商会更容易。 这是可能的:
首先,使用对称加密算法和随机密钥(主密钥)对整个主体进行加密。 将此密文作为文本存储在 javascript 块中。
对于所有用户,生成一个 javascript 哈希,将他们的用户名映射到主密钥的加密副本(使用每个用户密钥加密)。
最后,创建一个要求用户名和密码的网页。 输入后,使用用户名查找加密的主密钥。 使用用户输入的密码解密,并使用生成的主密钥解锁原始主体。 使用 javascript 将现有的 html 正文替换为解密后的正文。
我不知道客户端脚本,但您可以使用 Web 服务器来限制对您网站的访问。
在 IIS 中可以使用“目录安全”选项卡设置:配置 IIS 网站身份验证
如果每个人只有一个密码,您可以尝试一种公钥类型的方法。 您可以提供一个简单的脚本来执行 RSA 解密(您需要在可以访问某种类型的编程软件的地方进行原始加密)。 然后,您可以将内容作为加密字符串提供。 你会显示一个密码框,用户输入密码,然后根据密码解密字符串。 如果密码正确,字符串将正确解密,并显示页面。 否则,页面将看起来像一堆垃圾。 但是要小心,因为这种客户端方法很容易受到蛮力攻击。
当然,如果安全不是什么大问题。 从本质上讲,您将放置一扇门,上面写着“如果您不知道密码,请不要进来”。 任何不使用服务器端技术的东西都可能使用 JavaScript,以及受保护目录中的文件来存储密码。 然而,这不是密码保护。 可以禁用 JavaScript,这将导致页面加载。 毫无疑问,这将通过隐藏内容来解决……但内容仍然可以通过源查看。 还有其他一些方法,但如果您有真正值得用密码保护的内容,这不是一个好方法。
是的,这是可能的,但它不是很漂亮,甚至不是很好。
您将需要一个JavaScript 散列脚本
或者你可以使用一个神秘的 html 文件名作为密码和 ajax 在 / 浏览到该页面(如果存在):-)
与其他建议一样安全(或不安全),但可能更容易实施。
为此,您不需要公钥——实际上,公钥解密仅限于加密其他对称密钥和证书,因为它在计算上非常昂贵。 你只需要一个共享的秘密。
使用 AES 加密网页(例如),使用从密码短语派生的密钥(通过散列)。 然后,您必须将密码安全地传达给用户并编写一些 javascript 来下载加密内容、提示输入密码、解密数据并将其合并到 DOM 中。
它相当混乱而且非常脆弱——所有用户只有一个密码,一旦它受到威胁,你就必须更换服务器上的东西,并希望谷歌没有缓存它......建议你转向真正的 ISP
至于你所指的 HTML 密码程序,没有办法知道它不是万能的或坏的……“强算法的最佳安全性”这句话并不令人鼓舞!
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.