首先我知道的是,现在流传的PXL源码到最新版的AspM2都受影响,其次DBS和LoginSrv内是我没找到非必要的Delete语句(目前来看),同时也没有Drop Table,因此我的偏向于DBS和LoginSrv本身是没问题的。
那么问题可能出在哪呢?
我是这样想的,首先它得要登录器,那么登录器能抓到什么呢?自然是服务器的IP。
有了IP能做什么?
要知道一件事,AspM2和BluePXL都是强制MySQL,MySQL就存在一个问题,如果你的端口没改,也没设置禁止远程登录MySQL同时密码还很简单,就会造成一个结果,你的IP泄露之后,直接通过3306用弱口令爆破你的密码,然后清掉你的数据。
当然了,上面的方式也仅仅是我的一种假设,因为技术细节根本没流出来,所以可以来一起讨论讨论。
那么基于我上面的假设,应该BluePXL如何防止这种情况发生呢?
1、对于使用者而言(实际操作难度从低到高):
①服务器安全策略内将MySQL使用的端口屏蔽掉,从而使得数据库仅能在服务器内登录。
②将MySQL密码设置为强口令(可以自己找一个随机密码生成器,使用生成的强密码)。
③设置MySQL禁止root用户远程登录。
④设置MySQL仅指定一个非root账户可远程,同时仅授权该用户查询和修改权限。
⑤学习MySQL高级应用,必要的时候可以进行数据回滚。
2、对于开发者而言:
①换用SqLite3,这个很好理解,毕竟连接Sqlite3需要选择数据库文件,它就算知道你的IP,它又没法访问你的数据库文件,所以自然就连不上了,换句话说,它连你Sqlite3的数据库文件都能访问了,那它删/偷你版本不也都能做到了吗。
②换回老式文件数据库,其实我不太推荐,毕竟每次数据结构变了之后都得转换数据。
完善一下:
④设置MySQL仅指定一个非root账户可远程,同时仅授权该用户查询和修改【world数据库】权限。
world数据库就是物品、怪物、魔法那个数据库。
好像也有另一种草蛋的可能,那就是SQL注入,如果最后确定真实这个,那就得从源码层面去尽量规避了。
问题已经锁定,是某处祖传的SQL代码不严谨导致的SQL注入。
声明:本文系互联网搜索而收集整理,不以盈利性为目的,文字、图文资料源于互联网且共享于互联网。
如有侵权,请联系 yao4fvip#qq.com (#改@) 删除。
如有侵权,请联系 yao4fvip#qq.com (#改@) 删除。