使用 css/html密码保护网页

我已经看到了几个关于密码保护页面的问题,但它们似乎都不是我正在寻找的。JavaScript 或 Apache 等不是我目前能够考虑的选项。我也没有下载产品或购买产品的能力,因为这不完全适合我,而是适合我老板的网站,所以请不要提出这样的建议。

我已经看到了几个关于密码保护页面的问题,但它们似乎都不是我正在寻找的。JavaScript 或 Apache 等不是我目前能够考虑的选项。我也没有下载产品或购买产品的能力,因为这不完全适合我,而是适合我老板的网站,所以请不要提出这样的建议。

该网站目前是用 CSS 和 HTML 编写的,不幸的是,这也是我编码知识的范围。我看到了一些人们使用 PHP 编码的地方,但是每次尝试时我都只是得到一个空白页,或者它没有正常工作,或者当我输入密码时什么也不会发生。它也没有任何非常好的详细说明,所以我永远不知道我应该把 PHP 代码放在哪里(它是在它自己的页面上还是如何连接到它

老实说,这不一定是什么了不起的东西,因为很多查看此站点的人都不是很精通计算机,只是一个带有密码字段的简单表单框。最好有一个代码可以直接放入页面上的 HTML 中。如果我必须制作一个单独的 HTML 页面,我也不介意这样做。将有一个密码提供给推销员或他们的笔记本电脑,而他们可以在路问私人页面

我看到了一些关于.htpassword 的东西,另一个我不记得了,但是我无法找到任何有关它的分步说明或详细信息(详细的含义信息我可以理解...)。我还看到了有关 password_protect.php 的内容,但是我认为这需要一个用户名字段,而且我不能真正使用这样的用户名字段。不会有用户名,可悲的是,这要求太多的推销员记住两件事。

无论如何,我为我在这个问题上的无知道歉,并提前感谢任何人的帮助!

6

css 或 html(甚至 javascript)中的任何密码逻辑都是无用的,因为所有这些“代码”都下载到了客户端。

6

使用 css / html 密码保护网页?

...是不可能的。一种是表示语言,一种是文档标记语言。

我从来不知道我应该把 PHP 代码(它是在自己的页面上还是集成在一起?)或如何将其连接到实际的网页。

PHP 是一种编程 / 模板语言,典型的用法是在 HTML 文档中嵌入 PHP 代码。

在 WWW 的上下文中,它是一种服务器端编程语言,Web 服务器负责通过 PHP 解释器运行 PHP 程序并将输出发送到客户端(而不是发送原始文件)。

我看到了一些关于.htpassword

这是用于 Apache 内置密码系统的密码文件的通用文件名。

如果您只想要一个简单的密码系统,那么您应该查看 Web 服务器的手册。

5

您可以创建.htpassword 文件并将其上传到服务器的非公共部分。其内容应如下所示:

user1:password
user2:secondpassword
user3:thirdpassword

您可以使用下面的简单脚本创建这些加密密码。

<?php
if (!empty($_POST[password]) AND !empty($_POST[user])) {
  $user = $_POST[user]; 
  $password = $_POST[password]; 
  $encryptedPassword = crypt($password);
}
$script = $_SERVER['SCRIPT_NAME'];
echo "<html><head><title>Password Encryption</title></head><body>
<form method=post action='$script'>
<font size=5><b>.htpasswd File Password Encryption</b></font>
<br><br>Enter Username<br>
<input name=user value='$user' size=20>
<br><br>Enter Password<br>
<input name=password value='$password' size=20>
<br><br><input type=submit name=submit value='Encrypt Now'>
";
if (!empty($user) AND !empty($encryptedPassword)) {
  echo "<br><br>.htpasswd File Code<br>$user:$encryptedPassword<br>
}
echo "</form></body></html>";
?>

加密密码的一个例子可以在这里看到(请注意,fullstops 是加密的一部分,换行符分隔用户):

user1:$1$XrC3d0Bq$.fiItuFi.cWvCZamQi2x8.
user2:$1$4AKaALkW$6WNz7zDKveBuAy.6ORFi5.
user3:$1$5HttySKH$MktpH3lQ0OkeUclHfuBKF1

然后在要保护的目录中,在.htaccess 文件中包含以下代码以及服务器上指向.htpassword 文件的链接

AuthName "Restricted Area" 
AuthType Basic 
AuthUserFile /pathtofileonyourserver/.htpasswd 
AuthGroupFile /dev/null 
require valid-user
5

如果您添加 javascript,只需进行一些预处理就可以安全地对页面进行密码保护,而无需服务器端验证。

使用像 AES 这样的对称密钥 algo 加密您的内容(这是预处理),将其在线并使用 javascript 使用用户提供的密码解密该内容。

然后,一切都可以在浏览器的客户端发生。如果代码是开放的,每个人都可以看到,这并不重要。

伪代码:

<input type="password" id="password">
<button class="decrypt">Decrypt</button>
<script>
    var myEncryptedPage = '<html-string-pre-encrypted-with-your-password>';
    $('.decrypt').click(function(){
        var password = $('#password').val();
        // 'decrypt' tries to decrypt your string with the user provided password
        document.write(decrypt(myEncryptedPage, password));
    });
</script>

为了参考,如果你想看到一个可能的实现,我写了一个简单的 PoC 使用 crypto-js 库显示这个想法(StatiCrypt),在那里你可以做预处理和加密你的页面密码提示。

本站系公益性非盈利分享网址,本文来自用户投稿,不代表码文网立场,如若转载,请注明出处

(482)
Windows10更新后的.NETFramework错误-文件丢失
上一篇
Python vlookup在字典列表之间
下一篇

相关推荐

发表评论

登录 后才能评论

评论列表(11条)