我想知道是否有人对这个脚本/类safemysql有经验?(除了这个脚本的开发者)
它被宣布为 mysql 查询最安全的方法,并防止网站被 sql 注入 .. 我真的很喜欢你可以使用它的方式。
但它真的“安全”吗?是好代码吗?......以及关闭这个脚本中没有发生的mysql连接怎么样......不是必须的吗?
很想和你讨论这个!
我想知道是否有人对这个脚本/类safemysql有经验?(除了这个脚本的开发者)
它被宣布为 mysql 查询最安全的方法,并防止网站被 sql 注入 .. 我真的很喜欢你可以使用它的方式。
但它真的“安全”吗?是好代码吗?......以及关闭这个脚本中没有发生的mysql连接怎么样......不是必须的吗?
很想和你讨论这个!
尽管有这个名字,但我认为安全性并不是课程的重点。不要误解我的意思,我并不是说它不安全。它实际上具有其他库通常没有的安全功能,例如标识符的占位符。
我的意思是,如果使用得当,内置扩展是足够安全的,并且典型的创意用户可以像使用任何其他库一样轻松地跳过占位符:
$foo = $db->getAll("select * from foo where foo_id={$_POST[foo_id]}");
这个类与其他替代品的不同之处在于:
...并且它不会像大多数框架那样强迫您使用 SQL 语言的拙劣克隆(毕竟它是一个助手,而不是一个框架,并以此为荣)。
数据类型占位符很奇怪(为什么我需要为单个值设置?i
/?s
而不是为数组设置?)并且作者以讨厌命名参数而闻名(所以你不会在这里找到它们)。但该项目并未声称已完成。
总结一下:如果你喜欢语法糖,就使用它,而不仅仅是为了安全。如果有东西坏了,它是一个 637 行的文件——你可以自己修复它 :)
当然这个想法很棒。
事实上,这个类比其他广为宣传的解决方案(如原始 PDO)更安全,它不仅为极其有限的文字集提供占位符,还为可以查询的所有内容提供占位符。
有了它,它可以大大缩短应用程序代码,使开发人员从手动数据格式化中解脱出来。
唯一可能的缺点是
NOT IN(?a)
语句当然,您可以轻松扩展它,添加您个人需要的功能,例如关闭连接等。这正是 OOP 的用途。