如何为网页添加密码保护?
How can I add password protection to a webpage?
当我点击我网站上的一些图片时,我希望它要求输入密码并检查密码是否正确。如果输入了正确的密码,则转到该站点。但我对网站制作还很陌生。我知道网页代码是开源的。只需检查元件和动臂。所以我想出的这个密码保护代码很没用
var userResponse = "N/A";
function askPass() {
"use strict";
userResponse = prompt("What's the password?", "000000");
if (userResponse === "SpeculAcessPls") {
window.open("www.link.com");
}
}
如何使我的密码更安全?
为此,您需要一个 php 函数来验证登录表单。
<form action="action.php" method="post">
<p>Your password: <input type="text" name="password" /></p>
<p><input type="submit" /></p>
</form>
你的 action.php 应该是这样的:
<?php
if (!$_POST["password"]=="login password")
{
echo "Wrong password!";
}
?>
快速提示:如果您从未听说过 .htaccess 文件,您需要在 index.html 的目录中创建一个并添加代码以启用 php。下面的 link 将向您展示需要写入文件的内容,以便为您的 Web 服务器启用它。
http://www.besthostratings.com/articles/php-in-html-files.html
我认为不安全。使用:
<input type="password" name="password" value="password">
<input type="button" value="Send" name="send">
我对javascript不是很了解所以不能给你写javascript编码
如果您想保留客户端的所有内容,可以进行一些预处理,您可以使用对称密钥算法(例如 AES)加密您的网页,然后将其发布到 public 网络上。没有服务器端密码验证。
那你的源码是不是大家都能看也没关系,你还是需要密码才能看内容。
伪代码将是(使用 jQuery 标记):
<input type="password" id="password">
<button class="decrypt">Decrypt</button>
<script>
var myEncryptedPage = '<html-string-encrypted-with-your-password>';
$('.decrypt').click(function(){
var password = $('#password').val();
// 'decrypt' tries to decrypt your string with the user provided password
window.write(decrypt(myEncryptedPage, password));
});
</script>
作为参考,如果你想看到一个可能的实现,我使用 crypto-js 库编写了一个简单的 PoC 来展示这个想法 (StatiCrypt),你可以在其中进行预处理和加密你的页面密码提示。
使用 Apache 的解决方案 #1:
在您要保护的文件夹中创建一个文件.htaccess
:
AuthType Basic
AuthName "restricted area"
AuthUserFile /home/www/test/.htpasswd # replace here with the real path
require valid-user
创建文件 .htpasswd
包含:
coucou:$apr1$hS5e9bcn$mDINweGTqy8TYNv4aGr3W0
现在该网站将仅供用户 coucou
使用密码 test
!
当然,您可以使用 http://www.htaccesstools.com/htpasswd-generator/ 进行自定义。
注:
- 清除 cookie 似乎可以撤销访问权限(例如:您想离开 public 计算机)
- 关闭浏览器/重新打开浏览器不足以撤销访问权限
- 关于如何注销的更多参考:How to logout when using .htaccess (and .htpasswd) authentication?
解决方案 #2 PHP:
只需创建这个 index.php
文件:
<?php
if ($_POST["pwd"] == "thepassword")
{
echo "You entered the protected page successfully";
die();
}
?>
<form action="" method="post">
<p><input type="password" name="pwd" autofocus></p>
<p><input type="submit" /></p>
</form>
当我点击我网站上的一些图片时,我希望它要求输入密码并检查密码是否正确。如果输入了正确的密码,则转到该站点。但我对网站制作还很陌生。我知道网页代码是开源的。只需检查元件和动臂。所以我想出的这个密码保护代码很没用
var userResponse = "N/A";
function askPass() {
"use strict";
userResponse = prompt("What's the password?", "000000");
if (userResponse === "SpeculAcessPls") {
window.open("www.link.com");
}
}
如何使我的密码更安全?
为此,您需要一个 php 函数来验证登录表单。
<form action="action.php" method="post">
<p>Your password: <input type="text" name="password" /></p>
<p><input type="submit" /></p>
</form>
你的 action.php 应该是这样的:
<?php
if (!$_POST["password"]=="login password")
{
echo "Wrong password!";
}
?>
快速提示:如果您从未听说过 .htaccess 文件,您需要在 index.html 的目录中创建一个并添加代码以启用 php。下面的 link 将向您展示需要写入文件的内容,以便为您的 Web 服务器启用它。
http://www.besthostratings.com/articles/php-in-html-files.html
我认为不安全。使用:
<input type="password" name="password" value="password">
<input type="button" value="Send" name="send">
我对javascript不是很了解所以不能给你写javascript编码
如果您想保留客户端的所有内容,可以进行一些预处理,您可以使用对称密钥算法(例如 AES)加密您的网页,然后将其发布到 public 网络上。没有服务器端密码验证。
那你的源码是不是大家都能看也没关系,你还是需要密码才能看内容。
伪代码将是(使用 jQuery 标记):
<input type="password" id="password">
<button class="decrypt">Decrypt</button>
<script>
var myEncryptedPage = '<html-string-encrypted-with-your-password>';
$('.decrypt').click(function(){
var password = $('#password').val();
// 'decrypt' tries to decrypt your string with the user provided password
window.write(decrypt(myEncryptedPage, password));
});
</script>
作为参考,如果你想看到一个可能的实现,我使用 crypto-js 库编写了一个简单的 PoC 来展示这个想法 (StatiCrypt),你可以在其中进行预处理和加密你的页面密码提示。
使用 Apache 的解决方案 #1:
在您要保护的文件夹中创建一个文件
.htaccess
:AuthType Basic AuthName "restricted area" AuthUserFile /home/www/test/.htpasswd # replace here with the real path require valid-user
创建文件
.htpasswd
包含:coucou:$apr1$hS5e9bcn$mDINweGTqy8TYNv4aGr3W0
现在该网站将仅供用户
coucou
使用密码test
!
当然,您可以使用 http://www.htaccesstools.com/htpasswd-generator/ 进行自定义。
注:
- 清除 cookie 似乎可以撤销访问权限(例如:您想离开 public 计算机)
- 关闭浏览器/重新打开浏览器不足以撤销访问权限
- 关于如何注销的更多参考:How to logout when using .htaccess (and .htpasswd) authentication?
解决方案 #2 PHP:
只需创建这个 index.php
文件:
<?php
if ($_POST["pwd"] == "thepassword")
{
echo "You entered the protected page successfully";
die();
}
?>
<form action="" method="post">
<p><input type="password" name="pwd" autofocus></p>
<p><input type="submit" /></p>
</form>