PHP(不推荐使用)mysql模块与MySQLi和PDO的漏洞
我负责维护和扩展一个从2007开始的
PHP代码库,并使用原来的mysql模块.所有用户输入都使用cast来转义,预期值为数字,mysql_real_escape_string()使用单引号引用字符串,可能会通过INUM的字段或set_intersect()的in_array()进一步过滤SET字段.然后,当输出HTML时,所有无约束的字符串字段都将通过htmlspecialchars()或htmlentities()传递.值表示外键的情况下,该密钥首先被验证.
我相信,严格遵守这些程序,应用程序是安全的,因为它可以防止注射和其他形式的攻击. (奖励积分:我是正确的吗?如果没有,我还缺少什么?) 将此应用程序转换为mysqli或PDO将是一项相当大的任务(并且为了避免意外破坏,而不是我想要自动化).所以最后我的问题:在使用旧的mysql模块,哪些需要迁移到较新的模块时,是否有任何特定的漏洞无法缓解? 赏金信息:
我只有2个反对意见
>所有用户输入都是转义是一个严重的错误,导致second order injection.“SQL的所有动态数据”是正确的方法和措辞 还有一个轻微的不便:在几年(3-4可能),您的PHP将开始发出E_DEPRECATED级错误.但他们可以简单地关闭. 无论如何,只是从一个API到另一个API的机械移动将不会有太大的意义. 回答编辑过的问题. 旧的mysql ext中没有必要的漏洞.常用的唯一方法是易受攻击和容易出错.所以,不要在模块上寻找应变,更好地审核你的代码.如果没有使用集中式的库来进行数据库交互,那么很可能它是易受攻击的. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |