js\php字符及url的处理

一、JS字符转义

js对文字进行编码涉及3个函数:escape, encodeURI, encodeURIComponent,相应3个解码函数:unescape,decodeURI,decodeURIComponent

1、传递参数时需要使用encodeURIComponent,这样组合的url才不会被#等特殊字符截断。                           

例如:

<script language="javascript">document.write('<a href="http://passport.baidu.com/?logout&aid=7& u='+encodeURIComponent("http://cang.baidu.com/bruce42")+'">退出</a&amp; gt;');</script>


2、进行url跳转时可以整体使用encodeURI

例如: Location.href=encodeURI(http://cang.baidu.com/do/s?word=中国&ct=21);

使用这个方法编码的字符在PHP中可以使用urldecode()函数反编码


3、js使用数据时可以使用escape

escape对0-255以外的unicode值进行编码时输出%u****格式,其它情况下escape,encodeURI,encodeURIComponent编码结果相同。

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

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

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

二、php中字符转义

htmlspecialchars(),htmlspecialchars_decode()
htmlentities(),html_entity_decode()
urlencode();urldecode()
rawurlencode();rawurldecode()

三、注意

1.数据存入DB时存入原始数据;
2.接入层得到DB数据时,需要对需要在页面展示字符串数据及url进行安全转义(htmlspecialchars),以便于正常显示而不是去执行脚本;
3.如果接入层(如php测)没有对输出数据做转义,则需要页面测在显示之前做转义,只使用于js填充页面,填充前指定顶字符做转义替换。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值