我想發送一個字符串中的clojure表達式,以便在接收器處進行評估,這可能是一個用compojure編寫的web服務。例如,假設我有字符串「(* 7 6)」,我想把它變成'(* 7 6),然後我可以傳遞給eval並獲得42.這個操作在JavaScript中是微不足道的,但是不太確定如何在clojure中做到這一點。提示?如何將字符串轉換爲clojure表達式?
回答
這應該做的伎倆:
(eval (read-string "(* 7 6)")) ;; 42
或者,簡稱:
(load-string "(* 7 6)") ;; 42
我覺得這個應該在這裏提到;請注意,即使您不調用eval,read-string本身也會評估代碼: ''(read-string「#=(clojure.java.shell/sh \」ls \「)」)'' – bmaddy 2013-04-09 15:54:43
我沒有找到#=閱讀器語法的文檔。請你好好解釋一下嗎?這是一個非常重要的觀察! – 2013-04-09 16:39:38
我在下面的SW問題中找到了答案http://stackoverflow.com/questions/6427967/clojure-reader-macro。這是相當大的一筆交易,因爲如果不寫我自己的讀者就不可能阻止評估,並且可能會毀掉我的計劃來使用clojure進行安全注入。 – 2013-04-09 16:46:51
- 1. 將表達式轉換爲字符串
- 2. c#將字符串表達式轉換爲布爾表達式
- 3. 如何將PHP字符串轉換爲PHP正則表達式
- 4. 如何將字符串轉換爲布爾表達式
- 5. 如何將字符串轉換爲十進制表達式?
- 6. 如何將布爾表達式字符串轉換爲對象?
- 7. 如何將字符串表達式轉換爲VB代碼?
- 8. 如何將一個字符串轉換爲linq表達式?
- 9. 如何將Clojure中的字符LazySeq轉換爲字符串?
- 10. 如何將字符串轉換爲正則表達式的字符串
- 11. 將表達式轉換爲字符串表示形式?
- 12. 如何將clojure關鍵字轉換爲字符串?
- 13. Python:將格式字符串轉換爲正則表達式
- 14. 如何將字符串轉換成正則表達式在JavaScript
- 15. 你如何評價一個字符串作爲clojure表達式?
- 16. 轉換字符串表達式轉換爲十進制
- 17. 轉換lambda表達式字符串
- 18. 將字符串表達式轉換爲布爾邏輯 - C#
- 19. 將正則表達式轉換爲Ruby中的字符串
- 20. 將方案表達式轉換爲字符串
- 21. 將字符串轉換爲Ruby中的正則表達式
- 22. python:將字符串轉換爲正則表達式
- 23. 將字符串轉換爲日期的SSIS表達式
- 24. Javascript:將字符串轉換爲正則表達式
- 25. 將字符串轉換爲表達式樹?
- 26. 將字符串轉換爲針對集合的Lambda表達式
- 27. 將RGB字符串轉換爲RGBa字符串的正則表達式
- 28. 如何將字符串列表轉換爲查詢字符串?
- 29. 使用字符串轉換列表爲字典表達式c#
- 30. MySQL的字符串轉換爲表達
當心,這將允許Web客戶端(在互聯網上的任何人)在Web服務器上執行任意代碼過程,如重新定義增值稅,脫殼,刪除文件等。 – Chouser 2013-04-09 06:11:28
明白了。在允許此操作之前,我的應用程序將驗證並授權發件人完全信任。或者,它將解析,分析和/或沙箱化注入的代碼。 – 2013-04-09 12:10:02