由于織夢dedeCMS是一款開源程序,漏洞比較多,因此使用這款程序建站的站長朋友們無時無刻不在擔憂被掛馬,攻擊,掛黑鏈等問題。361源碼小編之前也寫了一些關于織夢被入侵的一些防范文章總結,如《DEDECMS織夢內容管理系統安全設置(防范網站注入)》、《dedecms織夢安全設置 防止系統被掛黑鏈木馬》、《織夢DEDECMS安全設置指南概要》等,有需求的朋友可以移步參看。
因為一旦網站被掛馬,就不只是掛在一個文件中,模板,后臺等都會被掛,今天又遇到了一種掛馬的方法,那就是通過SQL注入。
那么是如何注入的呢?留心的站長們會發現在首頁文章的最下面一般會有一個對文章進行投票的模塊圖標,當我們打開投票模塊代碼的時候發現投票模塊代碼沒有對用戶提交過來的SQL參數進行轉義。這就導致了入侵者有機可乘了。作為一個程序員而言在開發的時候都會使用addslashes()函數對用戶提交過來的數據進行轉義操作,那么在這個模塊代碼中該如何進行轉義呢?下面小編就來詳細的講解下方法吧。
首先根據路徑找到/include/dedevote.class.php文件,使用一款編輯軟件打開。
查找以下代碼:
$this->dsql->ExecuteNoneQuery("UPDATE`xiuzhanwang_vote`SET totalcount='".($this->VoteInfos['totalcount']+1)."',votenote='".addslashes($items)."' WHERE aid='".$this->VoteID."'");替換為:
$this->dsql->ExecuteNoneQuery("UPDATE`xiuzhanwang_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注入的風險了。
以上就是織夢dedeCMS如何防止投票模塊SQL注入垃圾信息的全部內容,希望對大家的學習和解決疑問有所幫助,也希望大家多多支持武林網。新聞熱點
疑難解答