为什么要发表这篇文章呢?原因看下图

很无奈,表示 xss 之前也是听过,只是没有真的去研究过,所以这次为了审核只能研究一番了。

XSS-即 Cross Site Scripting. 为了与"CSS"不混淆,故简称XSS.

但是别人已经写过的文章,我并不想完全复制下来

如果未来他网站比我先倒闭,我就写吧,现在只需点击进入

看了上面这么多,总结起来就是那几个特殊标签以及字符的关系,所以只需要屏蔽这些字符即可。

function gjj($str)
{
    $farr = array(  //定义过滤规则的数组
        "/\\s+/",
        "/<(\\/?)(script|i?frame|style|html|body|title|link|meta|object|\\?|\\%)([^>]*?)>/isU",
        "/(<[^>]*)on[a-zA-Z]+\s*=([^>]*>)/isU",
    );
    $str = preg_replace($farr,"",$str);  //用正则方式对字符串进行过滤
    return addslashes($str);  //返回字符串时对引号进行转义
}

function hg_input_bb($array)
{
    if (is_array($array))
    {
        foreach($array AS $k => $v) //遍历提交上来的全局变量数组
        {
            $array[$k] = hg_input_bb($v);
        }
    }
    else
    {
        $array = gjj($array);
    }
    return $array;
}

$_REQUEST = hg_input_bb($_REQUEST); //过滤request方式的请求
$_GET = hg_input_bb($_GET); //过滤get方式的请求
$_POST = hg_input_bb($_POST);  //过滤post方式的请求

可以过滤某些特殊字符和常见的 html 标签,防范基础的 xss 攻击和 sql 注入。 (上面方法名可以自己换哦~)

只要这样,xss byebye