我可以JSON.parse
不受信任的數據,然後驗證其結構(例如,從字符串映射到字符串數組)?或者可以從解析JSON
(例如Marshal
,這對於遠程代碼執行本質上是不安全的)發生壞的事情?Ruby中`JSON.parse()`的安全性?
回答
JSON.parse
不評估任何東西,它解析json。有什麼可以出錯的?沒有。
嗯,我認爲這取決於你放在'JSON'中,例如'JSON.parse([1,2,3] .to_json)'返回一個數組。 – DepressedDaniel
@DepressedDaniel:JSON只允許使用一個簡短的數據類型列表(參見[Wikipedia](https://en.wikipedia.org/wiki/JSON#Data_types.2C_syntax_and_example)),因此不可能注入花哨和危險的數據類型與JSON。 – spickermann
從技術上講,'JSON.parse' *應該*不計算任何東西,但是歷史上有一些[大量的「哎呀」時刻](https://www.trendmicro.com/vinfo/us/threat-encyclopedia/vulnerability/4835 /紅寶石上導軌-JSON解析器-遠程代碼執行脆弱性)。假定它不會執行代碼通常是可以的,但是像任何軟件一樣,真的會出現令人討厭的錯誤。 – tadman
- 1. Ruby on Rails中的angular.js安全性
- 2. PHP中的安全性
- 3. asp.net中的安全性
- 4. CodeIgniter中的MySQL安全性
- 5. 安全地喚醒Ruby中的線程
- 6. 線程安全:Ruby中的類變量
- 7. 安全地需要Ruby中的寶石
- 8. Subversion的安全性
- 9. rdbms的安全性
- 10. JSONP的安全性
- 11. NowJS的安全性
- 12. cookies的安全性
- 13. GAS的安全性
- 14. Ruby和Ruby後端(RhoMobile)前端安全
- 15. ajax安全性?
- 16. WebSocket安全性?
- 17. $ _session安全性
- 18. SQLCipher安全性
- 19. 安全模板(Ruby on Rails)
- 20. Ruby on Rails API安全
- 21. Ruby 1.8.6,SQLite3線程安全
- 22. Ruby on Rails和安全
- 23. JavaScript中JSON.parse()的複雜性是什麼?
- 24. 安全裝載散在Ruby中
- 25. PHP:filter_var安全性足夠安全嗎?
- 26. Android apk安全性如何安全
- 27. CakePHP的安全性如何,我們如何提高安全性?
- 28. Capistrano的Ruby的安全錯誤
- 29. JSON.parse:預計雙引號的屬性名(VAR JSON = JSON.parse(xhr.responseText);)
- 30. Android SharedPreference安全性
您從根本上誤解了JSON。沒有可能的安全問題。 JSON不是代碼,你不能注入有害的值。 – meagar
'JSON.parse'是安全的。 'JSON.load'不是。除非你確實需要後者的特定行爲(你不會這麼做),否則總是使用前者。 –