我已经看到了几个关于密码保护页面的问题,但它们似乎都不是我正在寻找的。JavaScript 或 Apache 等不是我目前能够考虑的选项。我也没有下载产品或购买产品的能力,因为这不完全适合我,而是适合我老板的网站,所以请不要提出这样的建议。
该网站目前是用 CSS 和 HTML 编写的,不幸的是,这也是我编码知识的范围。我看到了一些人们使用 PHP 编码的地方,但是每次尝试时我都只是得到一个空白页,或者它没有正常工作,或者当我输入密码时什么也不会发生。它也没有任何非常好的详细说明,所以我永远不知道我应该把 PHP 代码放在哪里(它是在它自己的页面上还是如何连接到它
老实说,这不一定是什么了不起的东西,因为很多查看此站点的人都不是很精通计算机,只是一个带有密码字段的简单表单框。最好有一个代码可以直接放入页面上的 HTML 中。如果我必须制作一个单独的 HTML 页面,我也不介意这样做。将有一个密码提供给推销员或他们的笔记本电脑,而他们可以在路问私人页面
我看到了一些关于.htpword 的东西,另一个我不记得了,但是我无法找到任何有关它的分步说明或详细信息(详细的含义信息我可以理解...)。我还看到了有关 pword_protect.php 的内容,但是我认为这需要一个用户名字段,而且我不能真正使用这样的用户名字段。不会有用户名,可悲的是,这要求太多的推销员记住两件事。
无论如何,我为我在这个问题上的无知道歉,并提前感谢任何人的帮助!
css 或 html(甚至 javascript)中的任何密码逻辑都是无用的,因为所有这些“代码”都下载到了客户端。
使用 css / html 密码保护网页?
...是不可能的。一种是表示语言,一种是文档标记语言。
我从来不知道我应该把 PHP 代码(它是在自己的页面上还是集成在一起?)或如何将其连接到实际的网页。
PHP 是一种编程 / 模板语言,典型的用法是在 HTML 文档中嵌入 PHP 代码。
在 WWW 的上下文中,它是一种服务器端编程语言,Web 服务器负责通过 PHP 解释器运行 PHP 程序并将输出发送到客户端(而不是发送原始文件)。
我看到了一些关于.htpword
这是用于 Apache 内置密码系统的密码文件的通用文件名。
如果您只想要一个简单的密码系统,那么您应该查看 Web 服务器的手册。
您可以创建.htpword 文件并将其上传到服务器的非公共部分。其内容应如下所示:
user1:pword
user2:secondpword
user3:thirdpword
您可以使用下面的简单脚本创建这些加密密码。
<?php
if (!empty($_POST[pword]) AND !empty($_POST[user])) {
$user = $_POST[user];
$pword = $_POST[pword];
$encryptedPword = crypt($pword);
}
$script = $_SERVER['SCRIPT_NAME'];
echo "<html><head><title>Pword Encryption</title></head><body>
<form method=post action='$script'>
<font size=5><b>.htpwd File Pword Encryption</b></font>
<br><br>Enter Username<br>
<input name=user value='$user' size=20>
<br><br>Enter Pword<br>
<input name=pword value='$pword' size=20>
<br><br><input type=submit name=submit value='Encrypt Now'>
";
if (!empty($user) AND !empty($encryptedPword)) {
echo "<br><br>.htpwd File Code<br>$user:$encryptedPword<br>
}
echo "</form></body></html>";
?>
加密密码的一个例子可以在这里看到(请注意,fullstops 是加密的一部分,换行符分隔用户):
user1:$1$XrC3d0Bq$.fiItuFi.cWvCZamQi2x8.
user2:$1$4AKaALkW$6WNz7zDKveBuAy.6ORFi5.
user3:$1$5HttySKH$MktpH3lQ0OkeUclHfuBKF1
然后在要保护的目录中,在.htaccess 文件中包含以下代码以及服务器上指向.htpword 文件的链接
AuthName "Restricted Area"
AuthType Basic
AuthUserFile /pathtofileonyourserver/.htpwd
AuthGroupFile /dev/null
require valid-user
如果您添加 javascript,只需进行一些预处理就可以安全地对页面进行密码保护,而无需服务器端验证。
使用像 AES 这样的对称密钥 algo 加密您的内容(这是预处理),将其在线并使用 javascript 使用用户提供的密码解密该内容。
然后,一切都可以在浏览器的客户端发生。如果代码是开放的,每个人都可以看到,这并不重要。
伪代码:
<input type="pword" id="pword">
<on cl="decrypt">Decrypt</on>
<script>
var myEncryptedPage = '<html-string-pre-encrypted-with-your-pword>';
$('.decrypt').click(function(){
var pword = $('#pword').val();
// 'decrypt' tries to decrypt your string with the user provided pword
document.write(decrypt(myEncryptedPage, pword));
});
</script>
为了参考,如果你想看到一个可能的实现,我写了一个简单的 PoC 使用 crypto-js 库显示这个想法(StatiCrypt),在那里你可以做预处理和加密你的页面密码提示。
本站系公益性非盈利分享网址,本文来自用户投稿,不代表码文网立场,如若转载,请注明出处
评论列表(85条)