2012-09-03 3 views
1

내 웹 사이트에서 안전한 html이 필요합니다.Google caja - 악성 코드 차단

비록 내가 caja 가이드를 읽었고, 나는 conecpt를 이해하는지 확신이 없다.

https://developers.google.com/caja/docs/gettingstarted/

는 나는 이렇게되면 생각 :

  • 사용자가 내 DB 내가 렌더링 할
  • 에 악성 컨텐츠를 제출합니다. Caja는 악성 코드를 인식하고 차단합니다.

하지만 어떻게 카자를 렌더링합니까? 그들은 자신의 페이지에서 이것을 설명하지 않고 코드를 대체하는 방법 만 보여줍니다.

<script type="text/javascript"> 
     document.getElementById('dynamicContent').innerHTML = 'Dynamic hello world'; 
</script> 

의 우리의 문서 나 스크립트 태그를 차단 카하을 말할 것 어떻게

<body> 
    <div class="input"> 
     <h3>User Input </h3> 
     <script> alert("I am really bad!"); </script> 
    </div> 

    <div class="input"> 
     <h3>User Input </h3> 
     <p> I am safe HTML!</p> 
    </div> 
</body> 

과 같을 것이다 가정 해 봅시다?

+0

Caja는 다른 일을하는 도구 모음입니다. 타사 자바 스크립트를 * 차단 *하거나 제 3 자 자바 스크립트를 실행하기에 * 안전 *할까요? 링크 한 페이지는 안전한 페이지입니다. 이를 차단하려면 HTML 삭제 도구가 필요합니다. http://code.google.com/p/google-caja/wiki/JsHtmlSanitizer –

답변

12

정말 간단합니다 .

사용하려면

<script src="http://caja.appspot.com/html-css-sanitizer-minified.js"></script> 
<script> 
    var sanitized = html_sanitize(untrustedCode, 
    /* optional */ function(url) { return url /* rewrite urls if needed */ }, 
    /* optional */ function(id) { return id; /* rewrite ids, names and classes if needed */ }) 
</script> 

당신이, 소독 CSS 스타일을 허용하는 대신 http://caja.appspot.com/html-sanitizer-minified.js을 사용하지 않으려면.

0

내 의견으로는 AntiSamy가 훨씬 더 나은 방법입니다.

https://www.owasp.org/index.php/Category:OWASP_AntiSamy_Project#What_is_it.3F

그리고 방금 소독 HTML (예. 더 스크립트 실행의 모든), 당신은 카하의 모든 필요 없어, 그냥 HTML-소독제를 원한다면 그것은

+1

왜 AntiSamy가 html_sanitize보다 나은 점이 있습니까? –

+0

이렇게하면 DB에 악성 코드가 생기는 것을 막을 수 있습니다. 올바른 Caja가 렌더링하는 동안 코드를 필터링합니까? 100 % 확실하지는 않습니다. + 추가 .js 파일이 필요하지 않습니다. 그냥 내 의견을 정직하게 너무 많은 지식을 가지고 있지 않습니다. AntiSamy는 저에게 효과적입니다. –

+1

그래, 문제가 있다면 아마도 더 낫다. 내가 말했듯이, Caja는 도구 모음입니다. html_sanitizer는 javascript 문자열 str을 가져 와서'div.innerHTML = str'을 말하기위한 클라이언트 측 라이브러리입니다. Caja는 또한 사용자 코드를 넣을 수있는 "더 나은 iframe"을 만드는 라이브러리'caja.js'를 제공합니다.이 코드는 실행되지만 쿠키와 같은 것에 액세스 할 수 없으며 페이지를 리디렉션 할 수 없습니다 등 –

관련 문제