2017-01-16 3 views
0

나는 간단한 모바일 웹 HTML 양식을 가지고 있으며 TextArea 내에서 사용자는 모든 데이터를 입력 할 수 있습니다.모바일 Textarea에서 XSS 필터 적용

HTML 또는 유효하지 않은 XSS 데이터를 서버에 전달하지 않고 XSS 필터를 적용 할 수있는 함수를 만들어야합니다.

나는 현재 OWASP 권장 XSS 같은 HTML을 탈출 사용하고 있습니다 :

var data = document.getElementById(__fieldname__).innerHTML; 
data = data.replace(/\<(.*?)DOCTYPE(.*?)\>/ig, '') 
      .replace(/\<html(.*?)\>/ig, '') 
      .replace(/\<\/html(.*?)\>/ig, '') 
      .replace(/\<script(.*?)\>/ig, '') 
      .replace(/\<\/script(.*?)\>/ig, '') 
      .replace(/\<style(.*?)\>/ig, '') 
      .replace(/\<\/style(.*?)\>/ig, '') 
      .replace(/\<body(.*?)\>/ig, '') 
      .replace(/\<\/body(.*?)\>/ig, '') 
      .replace(/\<form(.*?)\>/ig, '') 
      .replace(/\<\/form(.*?)\>/ig, '') 
      .replace(/\<iframe(.*?)\>/ig, '') 
      .replace(/\<\/iframe(.*?)\>/ig, '') 
      .replace(/\&/g, '&amp;') 
      .replace(/\</g, '&lt;') 
      .replace(/\>/g, '&gt;') 
      .replace(/\"/g, '&quot;') 
      .replace(/\'/g, '&#x27;') 
      .replace(/\//g, '&#x2F;'); 
use data... 

제안이나 개선?

+0

"안전한"데이터를 보내는 클라이언트에만 의존 할 수 없습니다. 이것은 서버 측에서 먼저 수행되어야합니다. – CBroe

답변

0

당신은 기본적으로 클라이언트 측에서 데이터의 유효성을 검사한다 자바 스크립트를 사용하여 데이터의 유효성을 검사하고 사용자가 다음 사용자가 쉽게 확인이 종류이 그래서 더 나은 옵션을 무시할 수 자바 스크립트를 서버를 사용하는 것입니다 차단하는 경우 어떤 경우가있다 측면 유효성 검사도.

+0

비슷한 기능을 서버 측에서도 사용하고 있습니다. 서버로 보내지는 첫 번째 페이로드로 클라이언트 쪽을 이스케이프 처리하려고합니다. –