最近一直处于攻防的泥沼里面。当然我能做的就是防护,我没有能力也不会去攻击任何人!
首先交代背景:一套所谓的开源代码程序,在线上运营!当然没有二次开发(重点,要考),我也只是受人之托,来帮看看!
总结这几天我都经历了哪些攻击:
(1)字段通过url传递,直接修改数据库(坑1)
(2)XSS攻击(坑2)
(3)能登陆后台,添加管理员账号(坑3,最大的坑)
(4)DDOS攻击,这个交给了厂商
下面来说我的解决方案:
第(1)问题我是通过binlog日志找到的坑,在上一篇文章已经写了一篇,感兴趣的可以看看《有时候binlog能救你一条命》
第(2)个问题大家百度网上一大堆解决方案:过滤用户输入的 检查用户输入的内容中是否有非法内容。如<>(尖括号)、”(引号)、 ‘(单引号)、%(百分比符号)、;(分号)、()(括号)、&(& 符号)、+(加号)等。、严格控制输出,代码给大家写在了下面
function replace_specialChar($strParam)
{
$regex = "/\/|\~|\,|\。|\!|\?|\“|\”|\【|\】|\『|\』|\:|\;|\《|\》|\’|\‘|\ |\·|\~|\!|\@|\#|\\$|\%|\^|\&|\*|\(|\)|\_|\+|\{|\}|\:|\<|\>|\?|\[|\]|\,|\.|\/|\;|\'|\`|\-|\=|\\\|\|/";
return preg_replace($regex, "", $strParam);
}
第(3)个问题是最坑的,居然加了一个超级管理员,emmmm,我就有点慌了,这顶级坑啊。当然代码千千万万,我使用了一个简单快捷的方法
1.敏感操作加了一个密码,不输入密码不能操作数据(被逼无奈)
2.限制ip登陆,不是白名单ip,无权限访问服务器后台程序
3.登陆后台加一个口令,无口令用户强制退出
当然这只是其中一种解决方案,有大神能留言互相交流一下也是可以的,渴望。
至于第(4)条,我就交给服务器厂商了
至于还有哪些坑等待我来填,目前还不能确定,我目前还是一名守护者,出现问题第一时间解决问题!