背景
我被合同帮助一家公司维护他们的服务器。我从事一些较小的PHP项目,但也研究性能问题,最近还扫描了黑客日志。
这些家伙已经运行了一段时间的服务器,并且在最后一刻拥有所谓的遗留应用程序。它使用魔术引号,全局变量(允许$id
被覆盖$_GET['id']
),使用.htaccess作为它们在某些情况下的唯一安全性,您可以为其命名。安全和编程的噩梦。
过去,我们一直被黑客入侵,大多数情况下是通过SQL注入进行攻击的,这种注入会运行SLEEP(99999999)
命令并充当DOS攻击。幸运的是,他们没有运行“小鲍比表”,
XKCD:http://xkcd.com/327/
因此,我将他们易受攻击的SQL语句mysql_query()
(不是mysqli)重新编写为PDO事务。我也分析查询为SLEEP
和UNION
,我们不使用,但注射有。到目前为止,一切都很好。
最新一期
最近,我们被告知,用户数据库中的记录正在发生变化,例如用户的电子邮件地址更改为垃圾邮件发送者的电子邮件地址。
我注意到他们的专栏没有last_modified
专栏,所以我们甚至都不知道何时更改了它们,更不用说是谁了。我添加了该专栏,但这仅是第一步。
当我查看此表时,我发现密码没有被添加盐分甚至是散列,只是保存为纯文本。
客户沟通
作为承包商,我如何才能在整个情况中与他们接洽,而又不会像疯子一样挥舞手臂?有什么建议吗?我当时在想一种冷静的方法,
问题#1 概要 为什么这是一个问题 如果不固定怎么办 建议的修复 问题#2 概要 为什么这是一个问题 如果不固定怎么办 建议的修复