我目前正在编写一个专注于安全性的php框架。我使用查询生成器来生成SQL语句,以便它不绑定到MySQL。 (或一般的SQL)我发现用户可以注入行名的某些可能性,所以它必须以某种方式逃避它们。由于查询生成器的工作原理,我很遗憾不能使用预准备语句。我怎样才能解决这个问题?mysql消毒行名
编辑:
该系统适用于例如这样的:db::select()-from('Tablename')->that('rowname')->run()
。而且恐怕有一个用户可以做类似that($_GET['foo'])
之类的东西。我可以忍受这一点,但我认为必须有一种方法来这样做
在准备好的语句中使用'mysqli_'或'PDO'? – Kermit 2013-02-15 16:20:41
你可以显示一些代码或给出具体用例与你正在使用什么行名称?如果你不能使用准备好的语句,那么你正在做一些非常错误的事情。 – mkaatman 2013-02-15 16:21:21
系统的工作原理如下: – edave 2013-02-15 16:31:54