欢迎光临
我们一直在努力

discuz防止跨站攻击函数dhtmlspecialchars分析

建站超值云服务器,限时71元/月
  1. function dhtmlspecialchars($string, $flags = null) {
            if(is_array($string)) {
                    foreach($string as $key => $val) {
                            $string[$key] = dhtmlspecialchars($val, $flags);
                    }
            } else {
                    if($flags === null) {
                            $string = str_replace(array('&', '"', '<', '>'), array('&', '"', '<', '>'), $string);
                            if(strpos($string, '&#') !== false) {
                                    $string = preg_replace('/&((#(\d{3,5}|x[a-fA-F0-9]{4}));)/', '&\\1', $string);
                            }
                    } else {
                            if(PHP_VERSION < '5.4.0') {
                                    $string = htmlspecialchars($string, $flags);
                            } else {
                                    if(strtolower(CHARSET) == 'utf-8') {
                                            $charset = 'UTF-8';
                                    } else {
                                            $charset = 'ISO-8859-1';
                                    }
                                    $string = htmlspecialchars($string, $flags, $charset);
                            }
                    }
            }
            return $string;
    }

,

  1. dhtmlspecialchars(trim($value))

复制代码,dhtmlspecialchars的作用是,防止跨站攻击,将网页中的字符转化为html实体!

  1. function dhtmlspecialchars($string, $flags = null) {
            if(is_array($string)) {
                    foreach($string as $key => $val) {
                            $string[$key] = dhtmlspecialchars($val, $flags);
                    }
            } else {
                    if($flags === null) {
                            $string = str_replace(array('&', '"', '<', '>'), array('&', '"', '<', '>'), $string);
                            if(strpos($string, '&#') !== false) {
                                    $string = preg_replace('/&((#(\d{3,5}|x[a-fA-F0-9]{4}));)/', '&\\1', $string);
                            }
                    } else {
                            if(PHP_VERSION < '5.4.0') {
                                    $string = htmlspecialchars($string, $flags);
                            } else {
                                    if(strtolower(CHARSET) == 'utf-8') {
                                            $charset = 'UTF-8';
                                    } else {
                                            $charset = 'ISO-8859-1';
                                    }
                                    $string = htmlspecialchars($string, $flags, $charset);
                            }
                    }
            }
            return $string;
    }

常见的使用方法:

  1. dhtmlspecialchars(trim($value))

复制代码


赞(0)
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com 特别注意:本站所有转载文章言论不代表本站观点! 本站所提供的图片等素材,版权归原作者所有,如需使用,请与原作者联系。未经允许不得转载:IDC资讯中心 » discuz防止跨站攻击函数dhtmlspecialchars分析
分享到: 更多 (0)