由于织梦(dedecms)是开源程序漏洞也是比较多的,但是由于漏洞问题,可以说使用这款程序建站的站长朋友们无时不在担忧被挂马,攻击,挂黑链等。小编之前也写了一些关于织梦被入侵的一些防范文章总结。因为只要是被挂马了不只是挂在一个文件中,模板,后台等都会被挂,今天又遇到了一种挂马的方法,那就是通过SQL注入。
那么是如何注入的呢?留心的站长们会发现在首页文章的最下面一般会有一个对文章进行投票的模块图标,当我们打开投票模块代码的时候发现投票模块代码没有对用户提交过来的SQL参数进行转义。这就导致了入侵者有机可乘了。作为一个程序员而言在开发的时候都会使用addslashes()函数对用户提交过来的数据进行转义操作,那么在这个模块代码中该如何进行转义呢?下面小编就来详细的讲解下方法吧。
首先根据路径找到/include/dedevote.class.php文件,使用一款编辑软件打开。
查找以下代码:
$this->dsql->ExecuteNoneQuery("UPDATE`dede58_vote`SET totalcount='".($this->VoteInfos['totalcount']+1)."',votenote='".addslashes($items)."' WHERE aid='".$this->VoteID."'"); |
替换为:
$this->dsql->ExecuteNoneQuery("UPDATE`dede58_vote`SET totalcount='".($this->VoteInfos['totalcount']+1)."',votenote='".mysql_real_escape_string($items)."' WHERE aid='".mysql_real_escape_string($this->VoteID)."'"); |
其实也就是addslashes()改为mysql_real_escape_string()对模块投票提交过来的数据进行转义后再向数据库提交,这样转义之后就会把例如逗号,双引号全部转义成单斜杠了。这样就可以有效的防范投票的时候被SQL注入的风险了。
1. 资源都是经过站长或作者收集测试修改后发布分享。如若转载请在文内以超链形式注明狐狸库文章出处,谢谢合作!
2. 本站除原创内容,其余所有内容均收集自互联网,仅限用于学习和研究目的,本站不对其内容的合法性承担任何责任。如有版权内容,请通知我们或作者删除,其版权均归原作者所有,本站虽力求保存原有版权信息,但因众多资源经多次转载,已无法确定其真实来源,或已将原有信息丢失,所以敬请原作者谅解!
3. 本站用户所发布的一切资源内容不代表本站立场,并不代表本站赞同其观点和对其真实性负责,若您对本站所载资源作品版权归属存有异议,请留言附说明联系邮箱,我们将在第一时间予以处理 ,同时向您表示歉意!为尊重作者版权,请购买原版作品,支持您喜欢的作者,谢谢!
4. 本站一律禁止以任何方式发布或转载任何违法的相关信息,访客如有发现请立即向站长举报;本站资源文件大多存储在云盘,如发现链接或图片失效,请联系作者或站长及时更新。
请登录后查看评论内容