2011-12-12 65 views
0

我尽量避免为每个更新或插入写入SQL代码。相反,PHP函数接受一些参数(添加或更改,tablename,fields-list)并从中构建SQL。这与使用参数化语句(mysqli)的首选方法类似但不完全相同。通过参数构建SQL字符串的一个函数。安全风险?

我的创造SQL的方式在黑客面前留下了灿烂的笑容吗?

回答

1

如果允许任何用户输入被添加到SQL查询中,这只是一个安全风险。如果您使用的是源代码中定义的常量参数,但您的网站用户的实际值应该始终使用绑定参数,并且不会直接添加到SQL查询中,那么您可以很好。

0

是的,除非您可以投入大量资源来测试您的滥用/滥用功能,否则存在安全风险。

还有其他一些因素需要考虑。构建动态SQL降低了数据库缓存查询的能力 - 每次调用函数时,查询都将被解析为新的查询。这可能会对性能产生重大影响。使用绑定参数不会产生相同的问题,因为数据库可以将参数识别为查询的可变部分。

相关问题