2017-01-16 11 views
0

У меня есть простая HTML-форма для мобильного Интернета, и в TextArea пользователь может вводить любые данные.В Mobile Textarea применять XSS-фильтр

Мне нужно создать функцию, которая может применять фильтр XSS, не передавая на сервер никаких HTML или недопустимых данных 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

Вы проверки данных с помощью JavaScript, который в основном подтверждению данных на стороне клиента, и есть некоторые случаи, если пользователь блокирующая JavaScript, то пользователь может легко обойти это так лучший вариант для этого вида проверки является использование сервера -side валидация тоже.

+0

Я использую аналогичную функцию на стороне сервера. Просто хотел сбежать от него на стороне клиента в качестве первой полезной нагрузки, которая будет отправлена ​​на сервер. –