Below you will find pages that utilize the taxonomy term “Clojure,web编程”
Posts
Clojure Web 编程之安全篇
最近关注这方面稍微多了点,大概总结下。
基本原则 浏览器的安全机制:
同源策略:host、port、protocol、sub domain都能影响。 沙箱模型,比如 Chrome 的多进程模型。 恶意网址拦截,现代浏览器基本上都有提供,Google也提供了开发API查询黑名单。 Clojure的Web开发本质上是基于 Java 的 Servlet 模型,因此也同样遵循 Java 的安全编程模型。这里主要描述 Clojure 里的常见防御策略,具体的漏洞请参考《白帽子讲Web安全》等书籍。
注入 包括 SQL 注入和其他类型的注入,比如XML、JavaScript甚至HTTP头。
SQL注入 任何情况下都应该避免拼接SQL语句,而应该使用参数化的SQL语句
如果使用[clojure.java.jdbc],使用占位符?替代参数:
(require '[clojure.java.jdbc :as j]) (j/query mysql-db ["select * from fruit where appearance = ?" "rosy"] :row-fn :cost) 如果使用korma,只要避免使用exec-raw执行拼接SQL语句,默认都是参数化SQL语句:
(select users (fields :id :first (raw "users.last")) (where {:first [like "%_test5"]})) ;;Or when all else fails, you can simply use exec raw (exec-raw ["SELECT * FROM users WHERE age > ?