4

我在 RESTful API 后面使用 Korma,我突然想到我正在将用户提交的值传递给我的(insert)调用。Clojure 中有没有很好的方法来防止 SQL 注入攻击?Korma 以一种非常直接的方式生成 SQL,所以如果有人告诉我他们的名字是little Bobby Tables,我担心会受到伤害。

4

1 回答 1

6

据我了解,Korma 总是生成参数化 SQL,至少对于 select 和 insert(我没有亲自测试过其他的),所以 Little Baby Tables 应该没问题。

仔细检查这些值是如何数据库返回的。清理DB输入对防止 CSRF/XSS 等没有任何作用。在处理 Clojure 和 DB <--> Web 交互时,我使用的规则是所有系统组件必须以对下一个服务器安全的方式对数据进行编码链和逻辑约束(如最大搜索大小)在环中间件中预先检查。

安全是一场猫鼠军备竞赛,没有什么可以替代测试这些东西。继续将 Little Baby Tables 放入每个查询中,并尝试您能想到的所有编码和多重编码组合。展示漏洞利用有时是帮助同事学习发现这些东西的一种相当有效的方法(只是不要对此感到厌烦)

于 2014-08-04T22:47:34.180 回答