新聞中心
織夢DedeCMS投票模塊經(jīng)常被SQL注入該怎么防范呢
作者 / 無憂主機 時間 2014-12-12 21:44:43
由于織夢(dedecms)是開源程序漏洞也是比較多的,雖然無憂主機php獨立ip空間安全性很高,但是由于漏洞問題,可以說使用這款程序建站的站長朋友們無時不在擔(dān)憂被掛馬,攻擊,掛黑鏈等。小編之前也寫了一些關(guān)于織夢被入侵的一些防范文章總結(jié)。的確這款程序被掛馬后解決起來很頭痛,因為只要是被掛馬了不只是掛在一個文件中,模板,后臺等都會被掛,小編今天又遇到了一種掛馬的方法,那就是通過SQL注入。那么是如何注入的呢?留心的站長們會發(fā)現(xiàn)在首頁文章的最下面一般會有一個對文章進(jìn)行投票的模塊圖標(biāo),當(dāng)我們打開投票模塊代碼的時候發(fā)現(xiàn)投票模塊代碼沒有對用戶提交過來的SQL參數(shù)進(jìn)行轉(zhuǎn)義。這就導(dǎo)致了入侵者有機可乘了。作為一個程序員而言在開發(fā)的時候都會使用addslashes()函數(shù)對用戶提交過來的數(shù)據(jù)進(jìn)行轉(zhuǎn)義操作,那么在這個模塊代碼中該如何進(jìn)行轉(zhuǎn)義呢?下面小編就來詳細(xì)的講解下方法吧。 首先根據(jù)路徑找到/include/dedevote.class.php文件,使用一款編輯軟件打開。 查找以下代碼:
$this->dsql->ExecuteNoneQuery("UPDATE`#@__vote`SET totalcount='".($this->VoteInfos['totalcount']+1)."',votenote='".addslashes($items)."' WHERE aid='".$this->VoteID."'");替換為:
$this->dsql->ExecuteNoneQuery("UPDATE`#@__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()對模塊投票提交過來的數(shù)據(jù)進(jìn)行轉(zhuǎn)義后再向數(shù)據(jù)庫提交,這樣轉(zhuǎn)義之后就會把例如逗號,雙引號全部轉(zhuǎn)義成單斜杠了。這樣就可以有效的防范投票的時候被SQL注入的風(fēng)險了。 無憂主機相關(guān)文章推薦閱讀: DEDECMS后臺模塊管理空白的解決方法 織夢程序中PLUS文件作用介紹及安全設(shè)置 DEDECMS安裝WAP之后登錄后臺報錯的解決方法 利用HTTP協(xié)議修改DEDECMS首頁代碼來實現(xiàn)網(wǎng)站重定向
本文地址:http://www.gle-technology.com/dedecms/17892.html