【问题标题】:PHP execute user defined queriesPHP 执行用户定义的查询
【发布时间】:2012-10-24 21:21:23
【问题描述】:

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

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

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

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

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

  4. 其他选项?

我正在寻找一种既高效又安全的方法。

谢谢

【问题讨论】:

    标签: php mysql codeigniter


    【解决方案1】:

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

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

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

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

    【讨论】:

    • 使用第一个选项意味着每次用户为页面选择不同的视图时都需要读取 2 次数据库,但也许没有办法解决。
    • 如果我可以解决参数问题,选项 3 不是更好吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-02-24
    • 1970-01-01
    • 2019-01-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-08-15
    相关资源
    最近更新 更多