首页 php教程 php手册 php中html字符串过滤函数详解

php中html字符串过滤函数详解

May 25, 2016 pm 04:49 PM
select sql注入

在php中过滤html字符串的方法有很多,如果我们使用系统自带的可能不适合于提交表单类数据了,如果用自定的相对会好处理一些,下面我介绍了一些方法大家可参考参考。

自定义的一个函数

<?php
function StripHTML($string) {
    $pattern = array(
        "&#39;<script[^>]*?>.*?</script>&#39;si",
        "&#39;<style[^>]*?>.*?</style>&#39;si",
        "&#39;<[/!]*?[^<>]*?>&#39;si",
        "&#39;([rn])[s]+&#39;",
        "&#39;&(quot|#34);&#39;i",
        "&#39;&(amp|#38);&#39;i",
        "&#39;&(lt|#60);&#39;i",
        "&#39;&(gt|#62);&#39;i",
        "&#39;&(nbsp|#160);&#39;i",
        "&#39;&(iexcl|#161);&#39;i",
        "&#39;&(cent|#162);&#39;i",
        "&#39;&(pound|#163);&#39;i",
        "&#39;&(copy|#169);&#39;i",
        "&#39;&#(d+);&#39;e"
    );
    $replace = array(
        &#39;&#39;,
        &#39;&#39;,
        "1",
        &#39;&#39;,
        "&",
        "<",
        ">",
        &#39; &#39;,
        chr(161) ,
        chr(162) ,
        chr(163) ,
        chr(169) ,
        "chr(1)"
    );
    return preg_replace($pattern, $replace, $str);
}
?>
除了上面自定的函数之外还有一个php自带的过滤html的函数:strip_tags(string) 这样就可以过滤掉所有的html标签了。
如果想过滤掉除了<img src="">之外的所有html标签,则可以这样写:
 代码如下复制代码
strip_tags(string,"<img>");
过滤除了<img src=""><p>xxx</p><b></b>之外的所有html标签,则可以这样写:
 代码如下复制代码
strip_tags(string,"<img><p><b>");
网上找到一个防sql注入函数
<?php
//php 批量过滤post,get敏感数据
if (get_magic_quotes_gpc()) {
    $_GET = stripslashes_array($_GET);
    $_POST = stripslashes_array($_POST);
}
function stripslashes_array(&$array) {
    while (list($key, $var) = each($array)) {
        if ($key != &#39;argc&#39; && $key != &#39;argv&#39; && (strtoupper($key) != $key || &#39;&#39; . intval($key) == "$key")) {
            if (is_string($var)) {
                $array[$key] = stripslashes($var);
            }
            if (is_array($var)) {
                $array[$key] = stripslashes_array($var);
            }
        }
    }
    return $array;
}
//--------------------------
// 替换HTML尾标签,为过滤服务 http://www.phprm.com
//--------------------------
function lib_replace_end_tag($str) {
    if (empty($str)) return false;
    $str = htmlspecialchars($str);
    $str = str_replace(&#39;/&#39;, "", $str);
    $str = str_replace("", "", $str);
    $str = str_replace("&gt", "", $str);
    $str = str_replace("&lt", "", $str);
    $str = str_replace("<SCRIPT>", "", $str);
    $str = str_replace("</SCRIPT>", "", $str);
    $str = str_replace("<script>", "", $str);
    $str = str_replace("</script>", "", $str);
    $str = str_replace("select", "select", $str);
    $str = str_replace("join", "join", $str);
    $str = str_replace("union", "union", $str);
    $str = str_replace("where", "where", $str);
    $str = str_replace("insert", "insert", $str);
    $str = str_replace("delete", "delete", $str);
    $str = str_replace("update", "update", $str);
    $str = str_replace("like", "like", $str);
    $str = str_replace("drop", "drop", $str);
    $str = str_replace("create", "create", $str);
    $str = str_replace("modify", "modify", $str);
    $str = str_replace("rename", "rename", $str);
    $str = str_replace("alter", "alter", $str);
    $str = str_replace("cas", "cast", $str);
    $str = str_replace("&", "&", $str);
    $str = str_replace(">", ">", $str);
    $str = str_replace("<", "<", $str);
    $str = str_replace(" ", chr(32) , $str);
    $str = str_replace(" ", chr(9) , $str);
    $str = str_replace("    ", chr(9) , $str);
    $str = str_replace("&", chr(34) , $str);
    $str = str_replace("&#39;", chr(39) , $str);
    $str = str_replace("<br />", chr(13) , $str);
    $str = str_replace("&#39;&#39;", "&#39;", $str);
    $str = str_replace("css", "&#39;", $str);
    $str = str_replace("CSS", "&#39;", $str);
    return $str;
}
?>
登录后复制

使用方法

引用是直接这样:

$xxx = htmlspecialchars($_POST['xxx']);

或者

$xxx = htmlspecialchars($_GET['xxx']);


文章地址:

转载随意^^请带上本文地址!

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
2 周前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳图形设置
2 周前 By 尊渡假赌尊渡假赌尊渡假赌

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

如何使用exp进行SQL报错注入 如何使用exp进行SQL报错注入 May 12, 2023 am 10:16 AM

0x01前言概述小编又在MySQL中发现了一个Double型数据溢出。当我们拿到MySQL里的函数时,小编比较感兴趣的是其中的数学函数,它们也应该包含一些数据类型来保存数值。所以小编就跑去测试看哪些函数会出现溢出错误。然后小编发现,当传递一个大于709的值时,函数exp()就会引起一个溢出错误。mysql>selectexp(709);+-----------------------+|exp(709)|+-----------------------+|8.218407461554972

Nginx基础安全知识:防范SQL注入攻击 Nginx基础安全知识:防范SQL注入攻击 Jun 10, 2023 pm 12:31 PM

Nginx是一个快速、高性能、可扩展的Web服务器,它的安全性是Web应用程序开发中不可忽略的问题。尤其是SQL注入攻击,它可以对Web应用程序造成巨大的破坏。在本篇文章中,我们将讨论如何使用Nginx来防范SQL注入攻击,以保护Web应用程序的安全。什么是SQL注入攻击?SQL注入攻击是一种利用Web应用程序漏洞的攻击方式。攻击者会在Web应用程序中注入恶

jquery如何隐藏select元素 jquery如何隐藏select元素 Aug 15, 2023 pm 01:56 PM

jquery隐藏select元素的方法:1、hide()方法,在HTML页面中引入jQuery库,可以使用不同选择器来隐藏select元素,ID选择器将selectId替换为你实际使用的select元素的ID;2、css()方法,使用ID选择器选择需要隐藏的select元素,使用css()方法将display属性设置为none,并将selectId替换为select元素的ID。

使用golang进行Select Channels Go并发式编程的异步处理方法 使用golang进行Select Channels Go并发式编程的异步处理方法 Sep 28, 2023 pm 05:27 PM

使用golang进行SelectChannelsGo并发式编程的异步处理方法引言:并发式编程是现代软件开发中的一个重要领域,它可以有效地提高应用程序的性能和响应能力。在Go语言中,使用Channels和Select语句可以简单而高效地实现并发编程。本文将介绍如何使用golang进行SelectChannelsGo并发式编程的异步处理方法,并提供具体的

PHP编程技巧:如何防止SQL注入攻击 PHP编程技巧:如何防止SQL注入攻击 Aug 17, 2023 pm 01:49 PM

PHP编程技巧:如何防止SQL注入攻击在进行数据库操作时,安全是至关重要的。SQL注入攻击是一种常见的网络攻击,它利用了应用程序对用户输入的不正确处理,从而导致恶意的SQL代码被插入并执行。为了保护应用程序免受SQL注入攻击的影响,我们需要采取一些防范措施。使用参数化查询参数化查询是最基本也是最有效的防范SQL注入攻击的方法。它通过将用户输入的值与SQL查询

PHP SQL注入漏洞的检测和修复 PHP SQL注入漏洞的检测和修复 Aug 08, 2023 pm 02:04 PM

PHPSQL注入漏洞的检测和修复概述:SQL注入是指攻击者利用Web应用程序对输入进行恶意注入SQL代码的一种攻击方式。PHP作为一种广泛应用于Web开发的脚本语言,被广泛用于开发动态网站和应用程序。然而,由于PHP的灵活性和易用性,开发者常常忽略了安全性,导致了SQL注入漏洞的存在。本文将介绍如何检测和修复PHP中的SQL注入漏洞,并提供相关代码示例。检

jQuery中如何实现select元素的改变事件绑定 jQuery中如何实现select元素的改变事件绑定 Feb 23, 2024 pm 01:12 PM

jQuery是一个流行的JavaScript库,可以用来简化DOM操作、事件处理、动画效果等。在web开发中,经常会遇到需要对select元素进行改变事件绑定的情况。本文将介绍如何使用jQuery实现对select元素改变事件的绑定,并提供具体的代码示例。首先,我们需要使用标签来创建一个包含选项的下拉菜单:

Laravel开发注意事项:防止SQL注入的方法与技巧 Laravel开发注意事项:防止SQL注入的方法与技巧 Nov 22, 2023 pm 04:56 PM

Laravel开发注意事项:防止SQL注入的方法与技巧随着互联网的发展和计算机技术的不断进步,Web应用程序的开发也变得越来越普遍。在开发过程中,安全性一直是开发者不可忽视的重要问题。其中,防止SQL注入攻击是开发过程中需要特别关注的安全问题之一。本文将介绍几种Laravel开发中常用的方法和技巧,帮助开发者有效地防止SQL注入。使用参数绑定参数绑定是Lar

See all articles