신뢰할 수없는 출처에서 제공 한 문자열에서 쉽고 안전하게지도를 파싱하는 방법을 찾고 있습니다. 지도에는 키워드와 숫자가 포함되어 있습니다. 이렇게하려면 read
을 사용하는 보안 문제는 무엇입니까?안전하게지도를 클로저로 구문 분석
3
A
답변
5
read
은 기본적으로 완전히 안전하지 않으므로 임의의 코드가 실행될 수 있습니다. 예를 들어 (read-string "#=(println \"hello\")")
을 시도하십시오.
*read-eval*
을 false로 바인딩하면 더 안전하게 만들 수 있습니다. 이로 인해 #=
표기법이 사용되면 예외가 트리거됩니다. 예를 들어 : (: foo는 : 막대)
(binding [*read-eval* false] (read-string "#=(println \"hello\")"))
마지막으로, 당신이 그것을 사용하는 방법에 따라하는 것은 다수의 키워드를 제공하여 서비스 공격의 잠재적 인 거부가있다. 키워드는 인턴되고 해제되지 않습니다. 따라서 충분한 양의 프로세스가 사용되면 메모리가 부족합니다. clojure-dev 목록에 관한 내용은 some discussion입니다.
2
안전하고 싶다면 기본적으로 평가없이 수동으로 구문 분석해야한다고 생각합니다. 지원하려는
(apply hash-map
(map #(%1 %2)
(cycle [#(keyword (apply str (drop 1 %)))
#(Integer/parseInt %)])
(string/split ":a 23 :b 32 :c 32" #" ")))
번호의 종류에 따라 당신이 원하는 얼마나 많은 오류 검사는 이상 순환되고있는 두 가지 기능을 수정하기를 원할 것입니다 : 여기에 한 가지 방법의 예는 그것을 할 것입니다 다른 모든 값을 키워드 또는 숫자로 처리합니다.
관련 문제
- 1. 구문 오류가있는 코드 구문 분석
- 2. 구문 분석/구문 분석이란 무엇입니까?
- 3. 구문 분석 오류 : 구문 오류
- 4. 클로저로 람다 블록 스캐너를 보자.
- 5. VB6 : HTML 구문 분석 용 (HTML 구문 분석 용)
- 6. libxml2를의 HTML 구문 분석 내가 HTML을 구문 분석 libxml2를 사용하고
- 7. PHP를 구문 분석 한 다음 asp.net을 구문 분석
- 8. 구문 분석 오류 : 구문 분석 오류, PHP 루프 예상
- 9. 파이썬 docstring 구문 분석 (일반적으로 파이썬에서 언어 구문 분석)
- 10. dict에 구문 분석 문자열
- 11. 정규식 HTML을 구문 분석
- 12. PHP 구문 분석 CXML
- 13. HTML 구문 분석 - Asp.net
- 14. iframe에서 xml 구문 분석
- 15. 행의 구문 분석
- 16. SQL에서 구문 분석 연도
- 17. NSDictionary로 구문 분석 (NSString)
- 18. SQL 구문 분석 텍스트
- 19. Python XML 구문 분석
- 20. 안드로이드 SOAP 구문 분석
- 21. 사용하여 구문 분석 :: RecDescent
- 22. 구문 분석 CSS ANTLR
- 23. 비정상적인 문자 구문 분석
- 24. 구문 분석 문자열
- 25. 안드로이드에서 KMF 구문 분석
- 26. 테이블 데이터 구문 분석
- 27. 어떻게 문자열을지도로 구문 분석
- 28. JSON 구문 분석 문제
- 29. 타사 XML 구문 분석
- 30. PHP 구문 분석 질문