English
 电子信箱
 加入收藏

  威盾防火墙 >> 新闻中心 >> 业界动态 >> js中escape解决过滤URL传值问题

 

js中escape解决过滤URL传值问题

威盾防火墙 2014-11-17

 

escape解决过滤URL传值问题在利用ajax传值的时候,遇到特殊符号过滤问题,特殊符号测试

XML/HTML代码01.特殊符号测试哈:~!@#$&%^*()<>,你好吗?<script>alert("hello world");</script>  
因为特殊字符里面有一个&符号,会被当作与data类型传多个传时的连接符号&一样,所以其后面的字符串会被当作参数值来传递,

解决方法

使用的应为encodeURIComponent,它是将中文、韩文等特殊字符转换成utf-8格式的url编码,所以如果给后台传递参数需要使用encodeURIComponent时需要后台解码对utf-8支持(form中的编码方式和当前页面编码方式相同)

escape不编码字符有69个:*,+,-,.,/,@,_,0-9,a-z,A-Z

encodeURI不编码字符有82个:!,#,$,&,\',(,),*,+,,,-,.,/,:,;,=,?,@,_,~,0-9,a-z,A-Z

encodeURIComponent不编码字符有71个:!, \',(,),*,-,.,_,~,0-9,a-z,


解决方法如下(另类解决办法):

JavaScript代码

 代码如下 复制代码 var tradition_content = tradition_content.replace("&",escape(\'&\'));//tradition_content

要转换的字符串  
如要转换所有& 

 代码如下 复制代码

var REPand = /&/g;  
var tradition_content = tradition_content.replace(REPand ,escape(\'&\'));

//tradition_content要转换的字符串


相关内容: 最新内容:
利用MVC的过滤器实现url的参数加密和解密[2014-11-17]
使用Cisco路由器实现网页内容过滤[2014-11-17]
JS过滤url参数特殊字符的实现方法[2014-11-17]
快速准确的内容过滤解决方案[2014-11-17]
Web分析技术: 下一代基于云的URL过滤[2014-11-17]
利用iptables过滤URL目标请求的小技巧[2014-11-17]