NewTonsoft JSON 's : 보안 영향
Newtonsoft JSON의 문서는 신뢰할 수없는 출처에서 JSON을 사용하는 데 를 사용하는 것에 대해 강력하게주의를 기울입니다. 이 기사는이 설정과 관련된 잠재적 보안 취약점을 탐색하고 완화 전략을 설명합니다.
TypeNameHandling.All 의 취약성
설정을 통해 NewTonsoft JSON은 JSON 페이로드 내 메타 데이터를 기반으로 유형을 인스턴스화 할 수 있습니다. 편리하지만 이것은 상당한 보안 위험을 초래합니다. 공격자는 유해한 유형의 사막화를 강요하여 임의의 코드 실행을 초래하는 악의적 인 JSON을 만들 수 있습니다.
예를 들어, 양성 JSON 페이로드는 다음과 같이 보일 수 있습니다.
그러나 악의적 인 행위자는 시스템 수준 유형을 대상으로하는 페이로드를 만들 수 있습니다.
이로 인해 NewTonsoft JSON은 TypeNameHandling.All
인스턴스를 생성하고 및
.
효과적인 완화 : Custom TypeNameHandling.All
유형 정보를 사용하여 JSON 사산화를 보호하는 열쇠는 사용자 정의 를 사용하는 것입니다. 이를 통해 사막화 중에 허용되는 유형을 엄격하게 제어 할 수있어 악의적 인 유형의 인스턴스화를 효과적으로 방지합니다.
사용자 정의 구현 에는 다음 단계가 포함됩니다
TypeNameHandling.All
인터페이스를 구현하는 클래스를 만듭니다
유형 유효성 검사를 시행하기 위해 메소드를 대체합니다. 여기에는 일반적으로 화이트리스트 또는 블랙리스트에 대한 유형을 확인하는 것입니다.
는 NewTonsoft JSON SERIALIZER에 사용자 정의
를 등록하십시오
<code class="language-json">{
"$type": "Car",
"Maker": "Ford",
"Model": "Explorer"
}</code>
로그인 후 복사
이러한 단계를 구현함으로써 잠재적으로 유해한 유형의 인스턴스화를 막는 동시에 JSON을 외부 소스에서 안전하게 사로화 할 수 있습니다. 이 사전 예방 적 접근법은 착취의 위험을 크게 줄입니다
위 내용은 NewTonsoft JSON의 TypEname Handling은 모든 보안 위험입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!