我有一个需要登录的应用程序。
只能通过单一登录页面访问该网站。
我关注DDOS并且(感谢这里的朋友)能够编写一个脚本来识别潜在的DDOS攻击并锁定特定的IP以防止站点访问(也是一种防止多个密码/用户名组合猜测的安全措施) )
阻止那些冒犯.htaccess的IP是否有任何价值。我可以简单地修改文件,以防止我的服务器允许访问违规的IP一段时间,但它会做任何好事吗?即使.htaccess阻止它们被提供,或者它是否会减少允许真正请求的负载,传入的请求是否仍然会打破系统?
值得注意的是,我的大多数请求都来自有限范围的真正IP,因此我打算采用以下方式:
如果怀疑DDOS攻击,则仅允许从一段时间内之前有过良好登录的IP访问。除非已经手动取消阻止请求,否则阻止永久没有良好登录的所有可疑IP。
您的圣人建议将不胜感激。如果您认为这是浪费时间,请告诉我!
实现非常纯粹的PHP。
答案 0 :(得分:2)
如果被.htaccess阻止,DDOS攻击造成的负载将会降低,因为不需要的连接会被提前拒绝,并且不允许调用PHP脚本。
以请求登录脚本为例,您的apache服务器将调用PHP脚本(我假设)在某种数据库中进行用户查找。这是负载。
Request <---> Apache <---> PHP <---> MySQL (maybe)
如果你阻止和ip(比如说1.2.3.4),你的htacess会有一个额外的行:
Deny from 1.2.3.4
请求会有点像这样:
Request <---> Apache <-x-> [Blocked]
并且不会发生PHP脚本或数据库调用,这比前一个示例的负载要少。
这还可以防止对登录表单的暴力攻击。您必须决定何时将IP添加到阻止列表中,可能是他们在一分钟内提供20次错误凭据或者连续超过半小时提供错误凭据。
最好使用防火墙来阻止请求,而不是使用.htaccess。这样请求永远不会到达apache,这是服务器根据IP地址规则丢弃数据包的简单操作。
以下行是一个shell命令(当以root身份运行时)将添加 iptables 规则以丢弃源自该IP地址的所有数据包:
/sbin/iptables -I INPUT -s 1.2.3.4 -j DROP