2017-01-16 14 views
0

私はシンプルなモバイルWeb HTMLフォームを持っていて、TextArea内でユーザーは任意のデータを入力できます。モバイルTextareaでXSSフィルタを適用する

HTMLまたは無効なXSSデータをサーバーに渡さずにXSSフィルターを適用できる関数を作成する必要があります。

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... 

任意の提案や改善点:私は現在、OWASPを使用しています

は、XSSはHTMLのようなエスケープをお勧め?

+0

「安全な」データを送信するクライアントにのみ依存することはできません。これは最初にサーバー側で行う必要があります。 – CBroe

答えて

0

あなたは、基本的には、クライアント側で データを検証しているJavaScriptを使用してデータを検証すると、ユーザは、ユーザが簡単に検証のこの 種のこのようより良いオプションをバイパスすることができ JavaScriptをサーバーを使用するようにされたブロックならば、いくつかのケースがありますサイド検証も。

+0

私はサーバー側でも同様の機能を使用しています。 サーバーに送信される最初のペイロードとしてクライアント側からエスケープしたかっただけです。 –

関連する問題