有一个InnoDB表,用于存储自定义构建的Web应用程序使用的博客帖子的评论。
最近我注意到评论的自动递增主键值增加了2而不是1。
我还注意到在另一个用于记住最后几个评论者足迹签名的MySQL表(例如ip,会话ID,uagent字符串等)中,PHP会话的名称以“viruskinq”开头,这很奇怪因为我认为它应该始终是十六进制md5类似的字符串。
谷歌只为“viruskinq”提供了几个结果,全都是土耳其语。这很有意思,因为大约一年前,有关网站被土耳其恶棍破坏了。 (我100%确定攻击者没有成功,因为我的应用程序中存在任何安全漏洞,因为当时由同一家公司托管的其他网站也被污损了。)
该网站位于使用Linux的共享主机上。
您是否认为服务器本身可能仍然受到黑客的影响?检查评论的id值表明,自今年5月以来存在这种倍增现象,但这种破坏几乎发生在一年前。
还有什么其他原因可以解释自动增量值的奇怪行为?应用程序尚未更改,在较旧的注释中,自动递增的主键值按顺序排列。
托管公司告诉我,自动增量值增加一倍的原因是因为他们使用了Master-Slave MySQL架构师,据他们说这种现象是正常的。
他们还承认,各种黑客不断攻击他们的服务器,“特别是会议”,他们对此无能为力。
我认为我最好开始打包我的东西并转向更好的虚拟主机。
答案 0 :(得分:4)
我真的非常怀疑这是一种病毒。仔细检查是否真的是以该字符串开头的会话ID (这确实是某些问题的原因)。我的猜测是,这是一个发现如何在浏览器中改变用户代理字符串的孩子,你看到的结果是完全无害的。
关于增量问题。
首先,检查mySQL服务器的auto_increment_increment
设置。也许出于某种原因它被设置为2?
其次,如果不是这样,我会查看评论系统在桌面上运行的所有DELETE
操作。被视为垃圾邮件被删除的评论?您可以暂时删除删除,或切换到软删除吗?
此外,请尝试自己创建一些后续评论。是否会出现相同的现象?如果您手动使用mySQL添加记录怎么办?
查看插入已提交评论的PHP代码,确保没有任何内容可能导致此行为。
尝试将评论系统移动到另一台服务器 - 最好是本地服务器,可能是新设置的 - 以查看该行为是否仍然存在。
答案 1 :(得分:2)
是否可以将表的自动增量值设置为2?