2017-01-16 53 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

我在服务器端也使用类似的功能。 只是想逃避客户端作为第一个有效载荷发送到服务器。 –