2011-03-19 3 views
1

Windows 7 가제트에서 일부 외부 JSON 데이터를 가져옵니다. 이는 기본적으로 높은 보안 권한이있는 Internet   Explorer에서 실행되는 JavaScript의 일부입니다. 그렇기 때문에 JSON의 형식이 올바르며 악의적이지 않은지 확인하고 싶습니다.JavaScript로 JSON 입력의 유효성을 검사하는 안전한 방법이 있습니까?

이 작업을 수행하는 좋은 방법은 무엇입니까?

+0

유효성 검사 중에 아무 것도 실행하지 않는 한 괜찮습니다. 코드 실행을 사용하여 유효성을 테스트하지 마십시오 (예 : 실행중인 경우 유효, 그렇지 않은 경우). – BoltClock

+2

그냥 json2.js http://www.json.org를 사용하십시오. – kjy112

답변

1

JSON.parse(jsonString);을 사용하십시오. 이렇게하면 배열과 객체는 작성되지만 JSON에서는 코드가 실행되지 않습니다. HTML5 JSON 객체가없는 구형 브라우저를 지원하려면 json2.js을 사용합니다. 이는 eval() JSON을 보내기 전에 잘못된 데이터를 검사하여 동일한 API를 사용하여 동일한 보호 기능을 제공합니다.

2

JSON은 JavaScript입니다. 따라서 JSON을 JavaScript의 유효성을 검사하는 것과 같은 방식으로 정적으로 유효성을 검사 할 수 있습니다. JavaScript 유효성 검사에 일반적으로 사용할 수있는 eval 접근 방식에 대해 우려하고 있으며이 접근 방식을 피하는 것이 현명합니다. 악의적 인 사람이고 검증을 위해 실행하면 잘 된 것입니다. JSLint은이를위한 훌륭한 도구입니다. 이 유틸리티를 "오프라인"으로 사용하는 방법은 스택   오버플로 질문 Is JSLint available for offline use?을 참조하십시오.

또 다른 접근법은 json2.js을 사용하는 것입니다. 이 방법은 함수를 포함하는 JSON을 올바르게 구문 분석하므로이주의 사항을 알고 있어야합니다.

관련 문제