织梦是一款现使用人数比较多的开源程序之一,它的功能强大,而且利于SEO优化,很受大家的喜爱。
可惜安全性很差,今天就给大家讲解一下如何防范织梦系统投票模块防止SQL的注入,让站长朋友们都解决一下后顾之忧。
这里主要是将核心文件中的addslashes()改为mysql_real_escape_string()即可。
接下来就看操作步骤吧!
首先,你要找到需要修改的文件dedevote.class.php,它在根目录下的include文件夹内,把该文件下载到本地后打开编辑,查找到代码:
$this->dsql->ExecuteNoneQuery("UPDATE `dede_vote` SET totalcount='".($this->VoteInfos['totalcount']+1)."',votenote='".addslashes($items)."' WHERE aid='".$this->VoteID."'");
并修改为:
$this->dsql->ExecuteNoneQuery("UPDATE `dede_vote` SET totalcount='".($this->VoteInfos['totalcount']+1)."',votenote='".mysql_real_escape_string($items)."' WHERE aid='".mysql_real_escape_string($this->VoteID)."'");
即可,这里修改完以后,保存一下,上传到原文件夹内,即可消除此隐患;如果你是开发者还可以了解到一些会用到的函数,如下:
mysql_real_escape_string() 会判断字符集,但是对PHP版本有要求;(PHP 4 >= 4.0.3, PHP 5)
mysql_escape_string不考虑连接的当前字符集。(PHP 4 >= 4.0.3, PHP 5, 注意:在PHP5.3中已经弃用这种方法,不推荐使用)