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

Ren*_*oto 1 html css passwords web

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

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

说实话,它不一定非常棒,因为许多将要关注这个网站的人都是不太懂电脑的人,只是一个带有密码字段的简单表格框.如果有一个代码可以直接放到页面上的HTML中,那将是最好的.如果我必须创建一个单独的HTML页面,我也不介意这样做.将有一个密码提供给销售人员,以便他们可以在他们的笔记本电脑或平板电脑的路上访问私人页面.

我看到了一些关于.htpassword和另一个我无法记住的事情,但我找不到任何一步一步的指示或有关它的详细信息(我能理解的详细含义信息......).我也看到了关于password_protect.php的事情,但是我认为这需要一个用户名字段,而我真的不能使用这样的字段.不会有用户名,遗憾的是,要求销售人员过多地记住两件事.

无论如何,我为我对这个问题的无知道歉,并感谢任何人提前给予他们的帮助!

car*_*666 6

css或html(甚至是javascript)中的任何密码逻辑都是无用的,因为所有这些"代码"都被下载到客户端.您需要在服务器端完成密码检查.


Que*_*tin 6

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

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

我永远不知道我应该把PHP代码放在哪里(它是在自己的页面上还是集成?)或者如何将它连接到实际的网页.

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

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

我看到了关于.htpassword的一些信息

这是与Apache内置密码系统一起使用的密码文件的通用文件名.

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


jac*_*per 5

您可以创建一个 .htpassword 文件并将其上传到服务器的非公开部分。它的内容应该是这样的:

user1:password
user2:secondpassword
user3:thirdpassword
Run Code Online (Sandbox Code Playgroud)

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

<?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>";
?>
Run Code Online (Sandbox Code Playgroud)

可以在此处看到加密密码的示例(请注意,句号是加密的一部分,换行符将用户分开):

user1:$1$XrC3d0Bq$.fiItuFi.cWvCZamQi2x8.
user2:$1$4AKaALkW$6WNz7zDKveBuAy.6ORFi5.
user3:$1$5HttySKH$MktpH3lQ0OkeUclHfuBKF1
Run Code Online (Sandbox Code Playgroud)

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

AuthName "Restricted Area" 
AuthType Basic 
AuthUserFile /pathtofileonyourserver/.htpasswd 
AuthGroupFile /dev/null 
require valid-user
Run Code Online (Sandbox Code Playgroud)


Rob*_*bin 5

如果添加的JavaScript,带着几分的预处理能够可靠地密码保护网页,不需要服务器端验证。

使用对称密钥算法(如 AES)加密您的内容(这是预处理),将其放在网上并使用 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>
Run Code Online (Sandbox Code Playgroud)

作为参考,如果您想查看可能的实现,我使用 crypto-js 库编写了一个简单的 PoC,显示了该想法 ( StatiCrypt ),您可以在其中进行预处理并使用密码提示加密您的页面。

  • 我编写了一个类似的 html 保护工具,它使用密钥派生而不是直接 AES:[PageCrypt](https://www.maxlaumeister.com/pagecrypt/) (2认同)