小编jas*_*ell的帖子

设置Ring-Anti-Forgery CSRF标头令牌

我试图通过在标题中设置X-CSRF-Token 来实现Ring-Anti-Forgery库.

由于我使用的是静态html文件,因此我发现内置的打嗝帮助器(它在表单中设置令牌)是无用的.

这是我第一次尝试使用Clojure进行Web开发,所以我猜我完全错过了那些有经验的人应该明白的东西.

README状态的说明:

中间件还在X-CSRF-Token和X-XSRF-Token头字段中查找令牌.可以使用:read-token选项进一步自定义此行为:

(defn get-custom-token [request]
  (get-in request [:headers "x-forgery-token"]))

(def app
  (-> handler
      (wrap-anti-forgery {:read-token get-custom-token})
      (wrap-session)))
Run Code Online (Sandbox Code Playgroud)

我已经将上面的内容添加到handler.clj而没有任何成功.

project.clj

(defproject hooktale "0.0.1"
  :description "Hooktale iOS App Website"
  :url "http://www.hooktale.com"
  :repositories {"sonartype releases" "https://oss.sonatype.org/content/repositories/releases/"}
  :source-paths ["src/clj" "src/cljs"]
  :dependencies [[org.clojure/clojure "1.5.1"]
                 [org.clojure/clojurescript "0.0-2080"]
                 [org.clojure/java.jdbc "0.3.0-beta2"]
                 [compojure "1.1.6"]
                 [com.mchange/c3p0 "0.9.5-pre5"]
                 [org.postgresql/postgresql "9.3-1100-jdbc4"]
                 [ring-anti-forgery "0.3.0"]]
  :plugins [[lein-ring "0.8.8"]
            [lein-cljsbuild "1.0.1-SNAPSHOT"]]
  :ring {:handler hooktale.handler/app}
  :profiles {:dev {:plugins [[javax.servlet/servlet-api "2.5"]
                             [ring-mock "0.1.5"]]
                   :cljsbuild {:builds [{:source-paths ["src/cljs"]
                                         :compiler {:optimizations …
Run Code Online (Sandbox Code Playgroud)

middleware header clojure csrf ring

13
推荐指数
1
解决办法
6220
查看次数

标签 统计

clojure ×1

csrf ×1

header ×1

middleware ×1

ring ×1