gpt4 book ai didi

javascript - 使用沙箱/隔离执行 sql 查询

转载 作者:行者123 更新时间:2023-11-29 19:11:40 25 4
gpt4 key购买 nike

这是一种在沙箱/隔离中执行 SQL(基本上只是只读语句)的方法吗?像子查询(真的安全吗?)、SQL 模拟器( https://github.com/maciakl/jQuery-SQL-Emulator ,有问题且速度慢)、ROLLBACK(可能也很慢并且也很难安全)和 CREATE TEMPORARY 之类的东西是一个选择,但我希望找到更好的东西。

这是真实案例:

我正在尝试制作一个能够由用户自定义 SQL 的报告工具(SELECT 或 JOIN 或 COUNT 或 SUM 等,并输出为 csv)。然而,让用户在生产数据库中执行 SQL 确实很危险。有更好的建议吗?

附:我的平台是MySQL+PHP+JS

更新:

重点是,我可以创建一个只读 MySQL 帐户。但这不能阻止用户查询某些在单个表中无法访问的行(例如, checkin 表中的记录,where Department_id = xx 和表中的员工列表,where Department_id = xx)。

最佳答案

对于任何遇到这个问题的人。

  1. 检查列表中是否有任何函数/语句(您的列表应该包含所有可用于获取系统信息的函数/语句)
  2. 仅从用户处获取输入以选择为 table_name.column_name
  3. 使用这些表名创建连接查询
  4. 在其中添加您的过滤条件,例如排除您不希望用户看到的行

关于javascript - 使用沙箱/隔离执行 sql 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43029997/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com