타이핑 : JSON의 뒤의 경고 이야기
기본 설정 typename handling.all은 편리 해 보이지만 위험을 숨 깁니다. JSON 데이터에 유형 메타 데이터가 포함되면 JSON.NET은 지정된 유형에 지정된 유형을 시도합니다. 이것은 무해한 것처럼 보이지만 악의적 인 코드는이 기능을 사용하여 응용 프로그램에서 위험한 객체를 만들 수 있습니다.
<:>이 예를 고려하십시오. 자동차 객체의 JSON 데이터를 나타냅니다.
typenamehandling.all을 사용하여 json.net은 새 자동차 인스턴스를 생성하고 그에 따라 속성을 작성합니다. 그러나 공격자는 JSON 구조를 System.codedom.compiler.templecollection 객체를 나타내도록 수정할 수 있습니다.
이 악성 JSON은 json.net에게 tempilecollect 객체를 인스턴스화하도록 지시 할 것입니다.
이 취약점을 완화하려면 typename handling.all back serialization json을 사용할 때는 사용자 정리 직렬화 바인더를 사용해야합니다. 이 바인더는 엄격한 검증 및 검사를 수행하여 인스턴스화 전에 전송 유형이 안전하고 허용되는지 확인할 수 있습니다. 이러한 예방 조치를 취함으로써 악의적 인 JSON이 응용 프로그램의 무결성을 손상시키는 것을 방지 할 수 있습니다.
위 내용은 보안 위험을 방지하기 위해 C#의 typename handling을 사용하여 JSON을 안전하게 사로화하려면 어떻게해야합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!