【发布时间】:2016-01-17 19:59:40
【问题描述】:
我的服务器应用几乎在所有情况下都使用准备好的语句,以防止 sql 注入。尽管如此,仍需要提供执行原始 SELECT 查询的特殊用户的可能性。
如何或多或少安全地确保查询不会修改数据库?是否可以执行只读查询,或者是否有任何其他“安全”方式确保没有人尝试任何 sql 注入? (使用 sqlite3,所以我不能使用任何权限)
非常感谢!
【问题讨论】:
-
我建议创建一个只有执行选择权限的数据库帐户 ....
-
@StephenC 我也是这么想的。@SalkinD 创建对特定表具有只读权限的用户,并在您的应用程序中使用该用户进行 JDBC 连接
-
@StephenC,sqlite3 不提供任何“数据库帐户”,也没有 GRANT 或 REVOKE 命令。我正在寻找类似 statement.setReadOnly 或类似的东西