PHP安全函数过滤实例

文章目录

        • htmlentities() 函数
        • htmlspecialchars() 函数
        • str_ireplace() 函数
        • str_replace() 函数
        • strip_tags() 函数

htmlentities() 函数

把字符转换为 HTML 实体

  
 $a = $_GET[fname];
 $a1 = htmlentities($a);
 
 echo '

过滤测试

.$a1.'">

'.$a1.'

'
; ?>

表单输入后,可以发现<>被转义(当然还可以输入其他的,只要是字符就会转变成HTML实体)

&lt;script&gt;alert(1);&lt;/scrpit&gt;

htmlspecialchars() 函数

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

  • & (和号)成为 &
  • " (双引号)成为 "
  • ’ (单引号)成为 ’
  • < (小于)成为 <
  • > (大于)成为 >
  
 $a = $_GET[fname];
 $a1 = htmlspecialchars($a);
 
 echo '

过滤测试

.$a1.'">

'.$a1.'

'
; ?>

表单输入"后,可以发现,script已经被过滤成scr_ipt了(当然你还可以设置过滤掉其他字符,这只是其中一个例子)

PS:该函数不区分大小写,所以输入SCRIPT也是一样的结果。

alert(1);

str_replace() 函数

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

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

strip_tags() 函数

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


过滤测试


'.$a1.'

'; ?>

表单输入后,可以发现,HTML标签都被过滤了

alert(1);

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

本文已放博客: 行云博客

你可能感兴趣的:(PHP交流,学习技术,php,字符串,html,javascript)