2010-07-21 7 views
1

를 작성, 우리가있어 나중에 그럼, 당신이 같은 악성 자바 스크립트를 포함하는 요청 문자열을받을 말한다 "alert('HACKED');"크로스 사이트 스크립팅 서버 측 클래식 ASP 파일에서 자바 스크립트

DIM foo : foo = Request.Form("foo"); 'Contains malicious javascript 

을하자 그 값을 포함하는 화면에 자바 스크립트를 작성합니다.

%> 
<script type="text/javascript"> 
    // some code 
    <%=foo %> 
    // some more code 
</script> 
<% 

여기에서 우리는이 유형의 크로스 사이트 스크립팅에 대해 안전하게 지켜야합니까?

답변

1

항상 기억 : "귀하의 의견을 필터링하고 출력 탈출"당신은 데이터베이스 (SQL 주입을 방지하기 위해)에 안전한 저장 데이터를 필터링

을, 당신은 사용자에게 제시하기 전에 데이터를 이스케이프 (방지하기 위해 XSS)

ASP의 HTMLEncode() 메소드를 사용해보세요.

+0

그러나 HTMLEncode()는 "alert ('HACKED') 문자열을 남겨 둡니다." 영향을받지 않습니까? – twh

+0

사용자는'alert ("HACKED");하지만 실제 HTML은'alert ( " HACKED " ) ;'과 같이 렌더링 될 것입니다. javascript'alert()'상자는 나타나지 않습니다. – sigint

+0

작은 따옴표는 HTMLEncode()로 인코딩되지 않으며 괄호 또는 세미콜론을 사용하지 않습니다. HTMLEncode()는 HTML에서 잘 작동하며, 전체적으로 사용하지만이 경우에는 HTML이 아닌 javascript를 출력합니다. – twh

관련 문제