2017-01-16 52 views
0

我有一個簡單的移動Web 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

您驗證使用javascript它基本上在客戶端驗證 數據數據也有一些情況下,如果用戶阻止 的JavaScript,然後用戶可以很容易地繞過這個所以更好的選擇,這 一種驗證方法是使用服務器也是驗證。

+0

我在服務器端也使用類似的功能。 只是想逃避客戶端作爲第一個有效載荷發送到服務器。 –