数据库被攻击了,好几个数据库的文本内容被替换

今天登录自己的小程序发现里面的内容不正常,然后登录数据库发现好几个数据库里的文本内容都被更改了,被改成了一段前端代码,一段由

你要确认的是数据库被攻击还是有sql注入漏洞,or本身的代码逻辑问题?
如果是数据库被攻击了,你得加数据库访问的白名单,看看你是否加了ip地址访问白名单,有米有用户名密码设置,如果没有,尽快加IP访问白名单和用户名密码权限。
如果是sql注入,那么你要根据你被修改的sql表来判断下,可能是哪些逻辑导致的,这个要结合你的服务器日志来看下客户端的请求是什么,是哪个接口篡改了你的数据,那么你应该在对应的接口里对sql语句里的一些字段值加校验和过滤,防止被sql注入,如果你是mysql,其实你可以使用类似于sqlmap的工具就能测出来你的sql漏洞

你好,问题没有描述清楚。不过可以给你点建议:

  • 数据库

1.如果是公有云提供的MySQL数据库的话,可以直接恢复到指定时间节点来恢复到被攻击前的数据(如果不清楚操作步骤,可以工单咨询客服),并且如果开启自动备份的话,也可以根据备份恢复;
2.如果是自建的MySQL数据库的话,可以通过开启binlog,设定为row模式,可以通过binlog文件恢复;
3.自建MySQL建议制作数据库自动备份脚本,每天定时备份,可以通过linux的crontab定时任务来自动执行这个脚本,备份脚本很简单,就是利用mysqldump命令,生成sql文件,该文件实际为建表语句+插入数据的SQL,如果是sqlite3的话,可以直接cp做物理备份,恢复时只需将备份的替换掉原来的sqlite3即可。

  • 程序

1.应用中避免使用sql拼接,尤其是form表单中的内容以及get请求查询,容易被sql注入,可以考虑使用orm框架,利用 类.属性 来对应 表.字段,这样可以较好的避免sql注入;
2.表单以及表的字段做好限制,如varchar要做长度限制,int等类型避免使用varchar,代码在处理数据时也要进行字段类型的判断,尽量使用json数据作为传递数据的类型,