질문 : eval을 사용하여 WebMethod 중 하나에서 JSON 반환 값을 파싱했습니다.
전송 볼륨이 이미 상당히 크기 때문에 jquery-json을 추가하지 않는 것이 좋습니다. 그래서 JSON 반환 값을 eval로 파싱합니다.
이제는 이것이 안전하지 않다는 소문이 있습니다. 왜 ?
내 서버를 해킹하지 않는 한 아무도 JSOn 반환 값을 수정할 수 없습니다. 어쨌든 훨씬 큰 문제가 발생할 수 있습니다.
로컬로 처리하는 경우 JavaScript는 브라우저에서만 실행됩니다.
그래서 문제가 어디에 있는지 알 수 없습니다.
누구나이 구체적인 예를 사용하여 이에 대해 밝힐 수 있습니까?JavaScript eval을 사용하여 JSON 구문 분석
function OnWebMethodSucceeded(JSONstrWebMethodReturnValue)
{
var result=eval('(' + JSONstrWebMethodReturnValue + ')')
... // Adding result.xy to a table
}
Crockford의 JSON에는 'eval'을 사용하지 않는 다른 구문 분석 모드가있는 두 개의 다른 라이브러리 (주 json.js 및 json2.js 제외)가 포함되어 있습니다. 그것들은'json_parse.js'와'json_parse_state.js'이며 찾을 수 있습니다 (https://github.com/douglascrockford/JSON-js/) –
@Camilo : 훌륭합니다, 고마워요! –
외부 소스로부터 입력이 없으므로 eval을 안전하게 사용할 수 있다고 말하는 것이 좋습니다. –