PHP安全过滤函数

在现代互联网中,我们经常要 从世界各地的用户中获得输入数据。但是,我们都知道“永远不能相信那些用户输入的数据”。之前做PHP开发的时候,小网站、低需求,也产生了几个不安全的开发作品。PHP的安全过滤函数的使用可以有效的防止像sql攻击、xss攻击的问题。现在恶补安全过滤函数这一块,看了一些php项目安全性的博客,整理了此篇文章。


1.htmlspecialchars(string, flag, encoding)

使用这个函数会把字符串转换为HTML实体(html实体不理解可以参看 http://www.w3school.com.cn/html/html_entities.asp);

众所周知像 双引号“,单引号‘,在操作对数据表进行操作的时候是很危险的。而使用htmlsprcialchars后,双引号就会变成",单引号就变成'


$var = '"mysql';
$var_after = htmlspecialchars($var);
var_dump($var_after);

输出显示:
string '"mysql' (length=11)


$var = "'mysql";
$var_after = htmlspecialchars($var, ENT_QUOTES); //第二个参数ENT_QUOTES,双引号和单引号都编码。
var_dump($var_after);

输出显示:
string ''mysql' (length=11)

& (和号)成为 &

" (双引号)成为 "

' (单引号)成为 '

< (小于)成为 <

> (大于)成为 >


2.htmlentities(string, flag, encoding)

htmlentities和htmlsprcialchars的使用和效果都比较类似,htmlsprcialchars只是转换以上几种特殊字符,而htmlentities转换全部的字符。

需要额外说明的一点在于使用htmlentities处理中文的时候第三个参数encoding,要使用正确的编码,否则会出现乱码。一般来说使用htmlsprcialchars转换基本字符就已经足够了。


3.strip_tags(string, allow)

strip_tags() 函数剥去字符串中的 HTML、XML 以及 PHP 的标签。

第二个参数allow,允许出现的标签;

$var='<a href="test.html"><b>测试页面</b></a>';

$var_after = strip_tags($var);
var_dump($var_after);
$var_second = strip_tags($var, '<b>');
var_dump($var_second);

输出:
string '测试页面' (length=12)
string '<b>测试页面</b>' (length=19)

4.stripslashes(string)
删除反斜杠,不多说。


另外还有像intval,md5等函数,在程序中合理使用都可以起到很好的效果。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值