注册 登录  
 加关注
查看详情
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

早衰男的巢

大音希声 道隐无名

 
 
 

日志

 
 

PHP 安全字符串:含html、js、php或引号等注入可能恶意string的处理  

2013-05-28 14:19:45|  分类: PHP |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

在接受处理变量的时候有些字符串若被直接输出可能因为含有特殊的标签或符号会破坏源码的运行或影响浏览器正确地解析页面布局。更有可能被恶意利用影响网站数据和权限的安全。

举例:test.php

<?php
  $msg = $_GET['msg'];
  echo ”<script> alert(‘”.$msg.”’);</script>”;
?>

对于 test.php?msg=hello_world 运行结果应该是弹窗显示”hello_world”,但如果 test.php?msg=hello’world ,则会报javascript错误

?

要视乎具体的应用场合决定处理的策略达到以转义、过滤、编码、删除的目的,一般常见的做法有如下若干种(使用范例略,参考PHP手册)。

?

1. str_replace();

用正则表达式或简单替换,简单做法之一把 特殊字符添加转义符 “\”或把半角替换为全角 或直接替换成空字符串(删除)。

2.strip_tags;

自动滤掉任何尖括号的标签、php标签 使html和 js 不再生效。好处是还可以指定保留特定的标签,用来处理评论、留言可以保留有限个允许的html有特性。

3.htmlspecialchars;

Convert special characters to HTML entities. 会把web浏览器误解的特殊几个字符进行编码 例如<>会变为 &lt;&gt;

4.base64_encode /base64_decode

好处是无论什么字符都会变成一串标准的ascii,字母数字和= 组成的串。缺点是字符串会增长大约30%。另外,上述的特殊字符如引号,decode之后会自动加上转义 “\”这个需要注意。

  评论这张
 
阅读(740)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2018