3

我正在使用 CodeIgniter 开发一个项目,其中显示的页面有一个选项列表,其中包含页面上SELECT显示的数据的可用查询(语句)。这些查询存储在 MySQL 表中,包括用户定义的查询。

我的问题是,处理所选查询执行的最佳方法是什么:

  1. view_id使用查询命令从表(键)中获取 SQL 语句。替换返回的 SQL 语句中的参数。使用查询命令执行 SQL 语句。

  2. 加载页面时,将 SQL 语句存储在一个数组中(可能很大)。当用户更改页面上的选择时,从数组中获取语句,替换语句中的参数,运行查询。

  3. 使用 MySQL 准备好的语句。(预见参数的问题,因为所有视图都需要相同的参数序列)

  4. 其他选择?

我正在寻找一种有效且安全的方法。

谢谢

4

1 回答 1

0

第一个——不要暴露你的任何sql——你只是在自找麻烦。

您希望将用户输入与正在运行的实际代码分开。设置 ti 就像它是用户可能拥有的正常事物的链接列表 - 例如,个人资料,帐户设置等。

解析您的输入以进行 sql 注入、实际运行该查询的权限等。

换句话说,将其设置为您网站中页面名称的简单列表 - 完全忽略他正在选择 sql 语句

于 2012-11-05T10:34:57.720 回答