• 欢迎访问行云博客,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站,欢迎加入行云博客 QQ群
  • 本站广招各类优秀作者,详情可以加群联系
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏行云博客吧

PHP安全函数过滤

国信安 行云 5个月前 (04-25) 211次浏览 已收录 0个评论 扫描二维码

这篇文章给大家介绍的内容是关于php中安全过滤函数的总结(附代码),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。

htmlentities() 函数

把字符转换为 HTML 实体

1
2
3
4
5
6
7
8
9
10
11
12
13
14
<?php  
 $a = $_GET[fname];
 $a1 = htmlentities($a);
 
 echo '
<form action="form.php" method="get" align="center">
<h3>过滤测试</h3>
<input type="text" name="fname" value="'
.$a1.'">
<br/>
<input  type="submit" value="提交">
<h3>'
.$a1.'</h3>
</form>'
;

?>
1
2
3
表单输入<script>alert(1);</script>后,可以发现<>被转义
(当然还可以输入其他的,只要是字符就会转变成HTML实体)
&lt;script&gt;alert(1);&lt;/scrpit&gt;

htmlspecialchars() 函数

把一些预定义的字符转换为 HTML 实体

1
2
3
4
5
6
7
8
9
    & (和号)成为 &amp;

    " (双引号)成为 &quot;

    '(单引号)成为 '

    < (小于)成为 &lt;

    > (大于)成为 &gt;
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<?php  
 $a = $_GET[fname];
 $a1 = htmlspecialchars($a);
 
 echo '
<form action="form.php" method="get" align="center">
<h3>过滤测试</h3>
<input type="text" name="fname" value="'
.$a1.'">
<br/>
<input  type="submit" value="提交">
<h3>'
.$a1.'</h3>
</form>'
;

?>
1
2
表单输入"<script>alert(1);</scrpit>,可以发现预定义的字符被转义
&quot;&lt;script&gt;alert(1);&lt;/scrpit&gt;

str_ireplace() 函数

替换字符串中的一些字符(不区分大小写)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
<?php  
 $a = $_GET[fname];
 $a1 = str_ireplace("script", "scr_ipt", $a);
 
 echo '
<form action="form.php" method="get" align="center">
<h3>过滤测试</h3>
<input type="text" name="fname" value="'
.$a1.'">
<br/>
<input  type="submit" value="提交">
<h3>'
.$a1.'</h3>
</form>'
;

?>
1
2
3
4
表单输入<script>alert(1);</script>后,可以发现,script已经被过滤成scr_ipt了
(当然你还可以设置过滤掉其他字符,这只是其中一个例子)
PS:该函数不区分大小写,所以输入SCRIPT也是一样的结果。
<scr_ipt>alert(1);</scrpit>

str_replace() 函数

替换字符串中的一些字符(区分大小写)

与str_ireplace() 函数一样,本函数区分大小写,这里不做过多解释

strip_tags() 函数

剥去字符串中的 HTML、XML 以及 PHP 的标签

1
2
3
4
5
6
7
8
9
10
11
12
13
14
<?php  
 $a = $_GET[fname];
 $a1 = strip_tags($a);
 
 echo '
<form action="form.php" method="get" align="center">
<h3>过滤测试</h3>
<input type="text" name="fname" value="'
.$a1.'">
<br/>
<input  type="submit" value="提交">
<h3>'
.$a1.'</h3>
</form>'
;

?>
1
2
表单输入<script>alert(1);</script>后,可以发现,HTML标签都被过滤了
alert(1);

结语:

目前只测试了这几种,更安全的方法还是推荐用正则表达式以及前端JavaScript第一次过滤,后端PHP再次过滤及加密来保证安全。如有错误,欢迎指出!


行云博客 - 免责申明

本站提供的一切软件、教程和内容信息仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。 本站信息来自网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑或手机中彻底删除上述内容。 如果您喜欢该程序,请支持正版,购买注册,得到更好的正版服务。如有侵权请邮件与我(admin@xy586.top)联系处理。敬请谅解!

本文链接:https://www.xy586.top/7675.html

转载请注明文章来源:行云博客 » PHP安全函数过滤

喜欢 (1)
[行云博客]
分享 (0)
发表我的评论
取消评论
表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址