你是不是也遇到过这种糟心事,明明自己搭了个博客或者小站,结果打开一看,谁都能进,连隔壁二大爷都能随便改你文章?别慌,这篇就是专门解决这个痛点的。看完这篇,你不用花一分钱,也不用找程序员,自己就能给网站加把锁。

说实话,我搞独立博客十年了,见过太多新手被那些花里胡哨的“一键安全插件”忽悠。什么月费99,什么终身授权,我看就是割韭菜。今天我就用最土、最实在的方法,教你怎么给网站加上最基本的身份验证。这招虽然老土,但绝对管用,而且没有任何后顾之忧。

咱们先说思路。很多人一听到“设置用户名密码”就头大,觉得要改数据库、要写代码。其实完全不用。对于大多数基于Apache服务器的网站,或者你用的是Nginx,都有现成的工具。我推荐用htpasswd,这是Linux系统自带的,稳如老狗。

第一步,你得有个终端或者SSH连接。如果你用的是Windows,装个PuTTY或者直接用Git Bash也行。别怕麻烦,这是基本功。连接上服务器后,输入命令:htpasswd -c /etc/nginx/.htpasswd admin。这里的admin是你想要的用户名,你可以改成任何你喜欢的,比如你的名字缩写,或者干脆叫boss。系统会提示你输入两次密码。这时候,千万记住,密码一定要复杂!别用123456,黑客扫库扫到你怀疑人生。我一般建议用大小写字母加数字加符号,比如MyBlog@2024!,这样既好记又安全。

这时候,你可能会问,这玩意儿在哪用?这就涉及到第二步,配置服务器。如果你用的是Nginx,得去修改你的配置文件。找到对应你网站的server块,在里面加上这两行代码:auth_basic "Restricted Area"; auth_basic_user_file /etc/nginx/.htpasswd; 注意,路径要和你刚才创建文件的路径一致。改完记得重启Nginx,service nginx restart。如果是Apache用户,更简单,直接在网站根目录下创建一个.htaccess文件,里面写上同样的指令,保存即可。

这里有个坑,很多新手在这里栽跟头。你配置完后,访问网站,浏览器确实会弹出一个登录框。但是,如果你发现输入密码后还是401错误,或者一直转圈,那大概率是权限问题。检查一下那个.htpasswd文件的权限,确保Web服务器用户(通常是www-data或nginx)有读取权限。chmod 644 /etc/nginx/.htpasswd,这招通常能解决90%的问题。

有人会说,这样设置后,所有页面都要登录,连首页都进不去,用户体验太差了。没错,这是代价。但如果你只是想让某些敏感页面,比如后台管理、或者私密相册,加个锁,那就别用全局验证。你可以针对特定目录进行验证。比如在Nginx里,把auth_basic指令放到location /admin/ 块里面。这样,只有访问/admin/路径时才需要输入用户名和密码。这就灵活多了。

我见过太多人为了省事,直接用了弱口令,或者干脆不设密码,觉得“没人会黑我”。这种心态真是让人恨铁不成钢。你的网站里可能有你的个人信息,有你的创作心血,甚至可能有你的商业数据。一旦泄露,后悔都来不及。我之前就吃过亏,有个小站没设防,被人挂了黑链,清理了整整三天。那种无力感,谁懂?

所以,别再犹豫了。花十分钟,按照上面的步骤操作一遍。虽然过程有点枯燥,还要敲命令,但那种掌控自己数据的安全感,是任何付费插件都给不了的。记住,安全不是产品,而是一种习惯。

最后再啰嗦一句,设置完一定要自己测试。用隐身模式打开浏览器,输入网址,看能不能弹出登录框,输入正确的账号密码能不能进去,输入错误的能不能被拒绝。这一步不能省,不然你设置半天,结果是个摆设,那才叫尴尬。

如何给自己建设的网站设置登陆用户名和密码,其实没那么难。难的是你愿不愿意迈出这一步,去保护你自己的数字资产。别懒,动手试试,你会发现,原来安全也可以这么简单粗暴。