创建简单网站密码的好方法?



我正在制作一个网站,并且该网站上有一个页面,我只希望某些人使用密码访问该页面。我想知道简单安全地做到这一点的最佳方式,如果存在一些示例代码,我会喜欢一些示例代码。

为了澄清,我想在我的网站上的页面添加一个功能,以防止访问该网站的任何人访问该页面,除非他们输入密码。我主要寻找HTML,JS或JQuery解决方案,因为这仅适用于网站用户。

我遇到的最简单的方法是使用htpasswd文件(如果您熟悉它,它看起来与/etc/passwd非常相似(,然后设置您的网络服务器以指向它。

# create htpasswd file
htpasswd -c /path/htpasswd
# add user to htpasswd file (you'll be prompted for password)
htpasswd /path/htpasswd  loginuser

在你的nginx.conf中,像这样设置它

server {
listen 80 yourserver;
listen [::]80 yourserver ipv6only=on;
root /var/www/yourserver;
index index.html;
location /public {
# ...
}
# everything under /private requires a login
location /private {
auth_basic "Restricted Content";
auth_basic_user_file /path/htpasswd;
}
}

关于这个设置有一个非常好的教程,我在这里无耻地抢走了这个答案:

https://www.digitalocean.com/community/tutorials/how-to-set-up-password-authentication-with-nginx-on-ubuntu-14-04

然后对于超出/除此之外的任何内容,nginx的文档也非常出色(如果这是您正在使用的网络服务器(。

https://nginx.org/en/docs/http/ngx_http_auth_basic_module.html

此设置的一个陷阱是nginx只允许操作系统的crypt模块支持的密码哈希。因此,例如Linux不一定有bcrypt,但大多数BSD都会。您可以使用man crypt找到操作系统的 crypt 模块支持的内容。

|

如果您正在寻找可以更多控制的东西,则可以拥有一个GET带有表单数据的网站的URL,该URLPOST登录信息到您可以自己处理登录详细信息的URL。这是python/flask - 我不确定它是否是您在标签上寻找的bsaed,但它可能仍然有帮助。

https://pythonspot.com/login-authentication-with-flask/

我希望这对:)有所帮助祝你好运!

取决于您用于创建网站的框架、应用程序等,以及 如果您想创建帐户系统或只是受保护的区域,有许多不同的方法。

1. .ht访问:

假设您使用的是与NCSA兼容的网络服务器(如apache(,并希望限制对特定路径的访问,那么最简单的(但迄今为止不是最安全(的方法是使用简单的.htaccess文件。 只需将具有该确切名称的文件放入要保护的文件夹中,其中包含以下内容:

AuthType Basic
AuthName "Enter Credentials Here"
AuthUserFile /full/path/to/.htpasswd
Require valid-user

并在安全的位置创建一个.htpasswd文件,

其中包含
username:password

或者,如果您关心黑客入侵您的服务器以获取密码:

username:hash

您可以使用在线.htpasswd生成器生成哈希。确保在.htaccess中正确输入.htpasswd的路径!

.htaccess文件将使服务器要求进行基本的用户名/密码身份验证,向用户显示消息"在此处输入凭据">,并要求用户浏览器将任何有效的凭据发送到您的服务器。有效凭据是指 .htpasswd 文件中的任何用户名/密码对。只需知道用户的浏览器将始终将未加密的凭据发送到您的服务器,因此,如果您关心密码不会从用户那里被盗,请确保启用https。并告诉他们不要写下来等基本密码安全。

2. 使用SQL的花哨帐户系统

这更复杂,可能不是你想要的,所以我只给出基本建议:阅读sql注入,确保你完全理解它以及如何避免它。阅读有关密码哈希和加盐的信息。阅读有关安全密码(短语(的信息,为用户提供建议。阅读有关 html 表单以及如何使用您的框架解析它们的信息。阅读有关加密的信息。然后创建一个适合您需求的概念并实施它。

如果您使用的是 PHP,那么这是简单的解决方案:

<?php
if(!isset($_POST["password"])){
header("location:pwdnotcorrect.php");
return;
}
$pwd=$_POST["password"];
if($pwd!="yourpassword"){
header("location:pwdnotcorrect.php");
return;
}?>
<!--Your HTML Code starts here--->

使用表单将带有密码的 POST 请求发送到此页面

如果密码不正确,则此页面会将您重定向到新页面。

最新更新