我通过 来屏蔽我的网站.htaccess
。htpassword
我听朋友说这真是个笑话,一分钟就可以绕过。这是真的吗?我还可以使用哪些其他方法来阻止用户/机器人访问我的网站?
答案1
如果用户使用糟糕的密码,任何密码保护方案都可能被绕过。任何技术细节都无法弥补使用“password”作为密码的缺陷。
话虽如此,通过未加密连接进行 HTTP Basic Auth 是垃圾:用户名和密码都是明文发送的,任何有动机的攻击者都可以截获它。可以把它想象成 HTTP 身份验证协议中的 Telnet。
如果您在 https://(SSL 安全)服务器上运行所有这些,并且无法在 pain-old-http:// 模式下获取受密码保护的位,那么您最好这样做,因为所有内容在线路上传输时都是加密的。
无论如何,我建议使用摘要式身份验证而不是基本身份验证(即使是通过 SSL,因为我天生多疑)。同样,您仍然像最容易猜到的密码一样容易受到攻击,但这是您需要解决的策略问题 :)
http://httpd.apache.org/docs/1.3/howto/auth.html对所有这些内容有更多详细信息(旧的,但仍然有效),您可以通过谷歌搜索“HTTP Auth 安全”并浏览结果来找到更多信息。
答案2
它的一个具体问题是它是纯文本身份验证,即用户名和密码以明文形式通过网络发送,除非您通过 HTTPS 连接。
此外,它没有内置真正的攻击对策,您可以整天对其进行暴力攻击请求,而它不会阻止连接。
为了防止机器人访问您的网站,您可以使用 robots.txt: http://www.robotstxt.org/
Google 等都尊重这个文件,但如果你谈论的是黑客机器人,它就无济于事了。
htaccess 身份验证并不完全安全,但它可能比使用 PHP 脚本进行身份验证更好,PHP 脚本会有同样的问题,但会增加额外的 PHP 漏洞层。
如果您使用 htaccess 身份验证以及特定的白名单 IP 地址范围(“允许来自”)并通过 HTTPS 连接,我会认为这相当安全。为了获得额外的安全性,您可以在防火墙级别而不是 Apache 级别配置 IP 白名单。