discuz 是一套通用的 PHP 社区论坛软件系统,在国内占有大量的用户群体,是做论坛的首选系统,在很早的时候就用 discuz 做论坛系统,感触最深的应该就是论坛的安全问题了,以前使用的时候,经常会有大量的信息进行注入,真是防不胜防。
好在 discuz 系统的更新很迅速,每一次的安全问题很快就得到了更新,而最头疼的问题恐怕就是 sql 的注入了,其实不只 discuz 系统,互联网上进行网络攻击的 SQL 注入是很可怕的,虽然 discuz 系统现有的安全问题已经非常完善了,但因为系统功能的强大,还是要注意安全问题。
下面是一段 discuz防sql注入的代码,利用了php提供的引用数据的魔法引用函数 magic_quotes_gpc,这个函数是在我们引用的数据碰到单引号和双引号以及反斜线时自动加上反斜线,帮我们自动转译符号,确保数据操作的正确运行,下面的代码可以细细研究。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
|
$magic_quotes_gpc = get_magic_quotes_gpc();@extract(daddslashes ($_COOKIE));@extract(daddslashes ($_POST));@extract(daddslashes ($_GET));if(!$magic_quotes_gpc) {$_FILES = daddslashes ($_FILES);}function daddslashes ($string, $force = 0) {if(!$GLOBALS['magic_quotes_gpc'] || $force) {if(is_array($string)) {foreach($string as $key => $val) {$string[$key] = daddslashes ($val, $force);}} else {$string = addslashes($string);}}return $string;}
|
|