CSSI 취약점 MTS/ASP 코드를 검토하는 방법을

기술 자료 번역 기술 자료 번역
기술 자료: 253121 - 이 문서가 적용되는 제품 보기.
이 문서가 보관되었습니다. "그대로" 제공되었으며, 업데이트가 되지 않을 것입니다.
모두 확대 | 모두 축소

요약

이 문서에서는 식별하고 사이트 간 스크립팅 보안 문제 (CSSI) 취약합니다 Microsoft 트랜잭션 서버/Active Server Pages (ASP) 응용 프로그램을 수정하는 방법을 설명합니다. 올바르게 유효성이 서식이 또는 유일한 입력 응용을 프로그램이 공격에 약해집니다.

추가 정보

프레젠테이션 계층에서 가장 tackled 수 있도록 CSSI 문제는 데이터 유효성 검사 및 서식, 응용 프로그램을 처리하는 방식에 루트가 있습니다.

이 계층은 일반적으로 ASP 페이지로 구성됩니다 및 때때로 이를 지원하는 일부 구성 요소는 ASP 페이지에 표시할 HTML 렌더링할 때 포함할 수 있습니다.

후자의 경우 응용 프로그램이 ASP 전용 응용 프로그램으로 CSSI 자신을 보호하는 동일한 작업을 수행해야 합니다 있지만 실제 구현을 일부 ASP 페이지를 실행할 유효성 검사 서식 코드 및 구성 요소의 일부 발생할 것입니다 데 중요합니다. CSSI 및 ASP에 대한 자세한 내용은 Microsoft 기술 자료를 다음 문서를 참조하십시오.
253119CSSI 취약점에 대한 ASP 코드를 검토하는 방법을
다음 단계를 식별하고 받기 위해 CSSI ASP 응용 프로그램을 수정하는 데 도움이 됩니다.
  1. ASP 또는 구성 요소를 찾습니다 표시할 HTML 생성하는 코드. 두 가지 일반적인 시나리오는 다음과 같습니다.
    • 구성 요소의 빌드 및 ASP 응답에 직접 작성할 HTML 문자열을 반환합니다.
    • 구성 요소가 내부적으로 페이지로 직접 쓸 수 Response.Write를 호출합니다. 일반적으로 응답 개체 참조는 GetObjectContext.Item("Response") 호출하여 ObjectContext에서 가져옵니다.
  2. HTML 출력 응용 프로그램 데이터가 포함되어 있는지 확인하십시오. 이 데이터 원본 데이터베이스, 파일, 쿠키, 같은 다양한 다른 개체 변수가 와야 및 등과 있습니다.
  3. 적합한 해결책을 찾습니다. ASP 또는 구성 요소를 찾이 필요 HTML을 사용하여 생성하는 코드의 일부는 특정 응용 프로그램에 대한 적절한 솔루션을 결정해야 합니다 입력. 솔루션 (포함하지만 한정되지 않습니다) 잘못된 데이터 유효성 검사/필터링 또는 이를 인코딩을.

서식 지정 지침

이러한 지침은 적절하게 서식을 수행할 수 있는 위치를 식별하는 데 도움이 됩니다.

페이지에 정보를 작성할 때 특정 응용 프로그램 데이터를 HTMLEncoded 합니다. 이를 위해 HTMLEncode HTML 페이지에서 결국 위한 태그를 중요하지 않습니다. 따라서 HTML 구성 요소 함수를 반환하는 경우 해당 HTMLEncode 내에 이를 수행할 수 있습니다.

HTMLEncode 수 있는 문자열 구성 요소에서 ASP 서버 개체에 대한 참조가 필요합니다. MTS ObjectContext.Items 컬렉션에서 이 참조를 얻을 수 있습니다:
sGoodHTML = GetObjectContext.Item("Server").HTMLEncode(sRawData) 
				
예제: 이 코드는 레코드 집합에서 가져온 값을 사용하여 테이블 행을 생성합니다. 이 코드 출력을 인코딩하지 않습니다:
Do While Not oRecordset.EOF
     sHTML = sHTML & "<TR>" 
     sHTML = sHTML & "<TD>" & oRecordset("FirstName") & "</TD>"
     sHTML = sHTML & "<TD>" & oRecordset("Address") & "</TD>"
     sHTML = sHTML & "</TR>" 
Loop
				
이 코드가 수정된 경우 해당 값 전체 HTML 문자열 대신 HTMLEncoded, 않습니다:
Dim oServer As ASPTypeLibrary.Server

Set oServer = GetObjectContext.Item("Server")

Do While Not oRecordset.EOF
     sHTML = sHTML & "<TR>" 
     sHTML = sHTML & "<TD>" & oServer.HTMLEncode( oRecordset("FirstName")) & "</TD>"
     sHTML = sHTML & "<TD>" & oServer.HTMLEncode( oRecordset("Address")) & "</TD>"
     sHTML = sHTML & "</TR>" 
Loop

Set oServer = Nothing
				
중간 oServer 개체 참조를 사용을 유의하십시오. 초기 바인딩 이용하려면 및 ObjectContext.Item 조회 때마다 확인하는 것을 방지하려면 포함되어 있습니다. 개체 ASPTypeLibrary.Server로 선언할 수 있는 "Microsoft Active Server Pages 개체 라이브러리에 참조를." 포함

다음 지침을 고려해야:
  • 비즈니스 구성 요소 (이들은 또한 HTML 렌더링 중인 경우가 아니면 HTMLEncode를 호출하면 안 됩니다. 프레젠테이션 계층은 작업입니다.
  • 일반적으로, HTMLEncode 또는 ASP 개체 중 하나를 사용하여 구성 요소를 실제로 IIS (인터넷 정보 서버) 로 같은 컴퓨터에서 실행해야 합니다.
  • 솔루션 (포함하지만 한정되지 않습니다) 입력된 매개 변수의 유효성을 검사하고 서식을 입력 매개 변수.

참조

자세한 내용은 다음 권고를 에서 해당 컴퓨터 응급 대응 팀 (CERT) Carnegie Mellon 대학 시:
http://www.cert.org/advisories/CA-2000-02.html
자세한 내용은 Microsoft 기술 자료에 있는 문서를 보려면 다음 문서 번호를 클릭하시기 바랍니다:
252985웹 응용 프로그램에 대한 사이트 간 스크립팅 보안 문제를 방지하는 방법
253120생성된 코드를 CSSI 취약점 위한 Visual InterDev 검토하는 방법을
253117Internet Explorer 및 Outlook Express CSSI 취약점을 방지하는 방법

속성

기술 자료: 253121 - 마지막 검토: 2014년 2월 12일 수요일 - 수정: 2.0
본 문서의 정보는 다음의 제품에 적용됩니다.
  • Microsoft Transaction Services 2.0
키워드:?
kbnosurvey kbarchive kbmt kbcssi kbhowto KB253121 KbMtko
기계 번역된 문서
중요: 본 문서는 전문 번역가가 번역한 것이 아니라 Microsoft 기계 번역 소프트웨어로 번역한 것입니다. Microsoft는 번역가가 번역한 문서 및 기계 번역된 문서를 모두 제공하므로 Microsoft 기술 자료에 있는 모든 문서를 한글로 접할 수 있습니다. 그러나 기계 번역 문서가 항상 완벽한 것은 아닙니다. 따라서 기계 번역 문서에는 마치 외국인이 한국어로 말할 때 실수를 하는 것처럼 어휘, 구문 또는 문법에 오류가 있을 수 있습니다. Microsoft는 내용상의 오역 또는 Microsoft 고객이 이러한 오역을 사용함으로써 발생하는 부 정확성, 오류 또는 손해에 대해 책임을 지지 않습니다. Microsoft는 이러한 문제를 해결하기 위해 기계 번역 소프트웨어를 자주 업데이트하고 있습니다.

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com