다음을 통해 공유


System.Xml.Xsl.XslCompiledTransform 클래스

이 문서는 이 API에 대한 참조 설명서를 보충하는 추가 설명을 제공합니다.

클래스는 XslCompiledTransform XSLT 1.0 구문을 지원하는 XSLT 프로세서입니다. 이 구현은 새로운 구현이며 사용되지 않는 XslTransform 클래스와 비교할 때 성능 향상을 포함합니다. 클래스의 XslCompiledTransform 구조는 클래스와 매우 유사합니다 XslTransform . 메서드는 Load 스타일시트를 로드하고 컴파일하고 메서드는 Transform XSLT 변환을 실행합니다.

XSLT document() 함수 및 포함된 스크립트 블록에 대한 지원은 기본적으로 사용하지 않도록 설정됩니다. 이러한 기능은 개체를 XsltSettings 만들고 메서드에 전달 Load 하여 사용하도록 설정할 수 있습니다.

자세한 내용은 XslCompiledTransform 클래스 사용XslTransform 클래스에서 마이그레이션을 참조하세요.

보안 고려 사항

클래스를 사용하는 애플리케이션을 XslCompiledTransform 만들 때 다음 항목과 해당 의미를 알고 있어야 합니다.

  • XSLT 스크립팅은 기본적으로 사용하지 않도록 설정됩니다. XSLT 스크립팅은 스크립트 지원이 필요하고 완전히 신뢰할 수 있는 환경에서 작업하는 경우에만 사용하도록 설정해야 합니다.

  • XSLT document() 함수는 기본적으로 사용하지 않도록 설정됩니다. document() 기능을 사용하도록 설정하면, XmlSecureResolver 개체를 Transform 메서드에 전달하여 액세스할 수 있는 리소스를 제한할 수 있습니다.

  • 확장 개체는 기본적으로 사용하도록 설정됩니다. XsltArgumentList 확장 개체를 포함하는 객체가 Transform 메서드에 전달되면, 이러한 객체가 활용됩니다.

  • XSLT 스타일시트에는 다른 파일 및 포함된 스크립트 블록에 대한 참조가 포함될 수 있습니다. 악의적인 사용자는 실행 시 컴퓨터가 리소스에서 부족해질 때까지 시스템이 처리될 수 있는 데이터 또는 스타일시트를 제공하여 이를 악용할 수 있습니다.

  • 혼합 신뢰 환경에서 실행되는 XSLT 애플리케이션은 스타일시트 스푸핑이 발생할 수 있습니다. 예를 들어 악의적인 사용자는 유해한 스타일시트를 사용하여 개체를 로드하고 나중에 메서드를 호출 Transform 하고 변환을 실행하는 다른 사용자에게 전달할 수 있습니다.

스타일시트가 신뢰할 수 있는 원본에서 제공되지 않는 한 스크립팅 또는 document() 함수를 사용하도록 설정하지 않고 신뢰할 수 없는 원본의 개체, XSLT 스타일시트 또는 XML 원본 데이터를 허용하지 XslCompiledTransform 않음으로써 이러한 보안 문제를 완화할 수 있습니다.