"安全地"允许用户使用SQL进行搜索

BCS*_*BCS 4 sql security web-applications

例如,我经常想用stackoverflow搜索

SELECT whatever FROM questions WHERE
   views * N + votes * M > answers AND NOT(answered) ORDER BY views;
Run Code Online (Sandbox Code Playgroud)

或类似的东西.

有没有合理的方法允许用户使用SQL作为搜索/过滤语言?

我看到它有一些问题:

  • 访问/更改内容(精心设置的用户帐户应该修复)
  • SQL注入(鉴于之前他们应该能够做的最糟糕的事情就是回到垃圾并在那里崩溃).
  • DOS攻击病理查询
  • 你给他们什么索引?

编辑:我想允许加入,什么不是.

Edu*_*eni 5

访问/更改内容
没问题,只需使用残缺用户运行查询,只需选择权限即可

SQL注入
只需清理查询

DOS攻击
超时查询并限制IP访问.我想你也可以节省一些服务器的CPU使用率