Eval을 사용하지 않고 "완벽한" JSON 구문 분석
더 사용자 친화적인 JSON 구문 분석 경험을 촉진하기 위한 노력의 일환으로 개발자는 종종 다음과 같은 방법을 사용합니다. 악명 높은 평가 기능에. 그러나 이러한 관행은 보안 취약점에 대한 우려를 불러일으킵니다. 이 기사에서는 편의성과 보안 요구 사항을 모두 충족하는 솔루션을 제공하면서 안전성을 손상시키지 않고 "완화된" JSON을 구문 분석하는 대체 접근 방식을 살펴봅니다.
문제:
표준 JSON 구문 분석 방법인 JSON.parse는 올바른 JSON 구문을 엄격하게 준수하므로 키를 따옴표로 묶어야 합니다. 그러나 실제로 개발자는 키가 인용되지 않을 수 있는 "완화된" 구문을 사용하는 JSON 데이터를 자주 접하게 됩니다. 이는 이러한 데이터를 안전하게 구문 분석하는 데 어려움을 겪습니다.
해결책:
코드를 무차별적으로 실행하는 eval을 사용하는 대신 더 안전하고 동등하게 효과적인 방법은 JSON 데이터를 삭제하는 정규식입니다. 이 기술에는 따옴표가 없는 키를 적절하게 인용된 등가 키로 대체하여 JSON.parse로 데이터를 성공적으로 구문 분석할 수 있도록 하는 작업이 포함됩니다.
단계별 프로세스:
코드 예:
다음의 "완화된" JSON을 고려하세요.
{muh: 2}
이 데이터를 구문 분석하려면 삭제된 접근 방식 사용:
var badJson = "{muh: 2}"; var correctJson = badJson.replace(/(['"])?([a-z0-9A-Z_]+)(['"])?:/g, '"": '); var resultObject = JSON.parse(correctJson);
삭제 프로세스 후 올바른 JSON 변수에는 유효한 JSON이 포함됩니다.
{"muh": 2}
이는 JSON.parse로 안전하게 구문 분석될 수 있으며 결과적으로
결론:
이 삭제 기술을 채택함으로써 개발자는 평가에 의존하지 않고도 "완화된" JSON 데이터를 안전하게 구문 분석할 수 있습니다. 이 접근 방식은 데이터 무결성과 보안 프로그래밍 관행 준수를 모두 보장하는 실용적인 솔루션을 제공합니다.
위 내용은 eval을 사용하지 않고 보안을 유지하지 않고 \'완화\' JSON을 어떻게 구문 분석할 수 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!