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 않음으로써 이러한 보안 문제를 완화할 수 있습니다.