防止網頁被篡改的技術要點解析
發布日期:2020/07/28 作者: 祥雲時代 點擊:
監聽工具
服務程序使用Java的JNotify組件進行監控,程序運行後調用監控類,監控類繼承於JNotifyListener接口,需要開發者重寫fileRenamed、fileModified、fileCreated等方法,發生了某個事件就執行對應方法。
使用Drools引擎實現業務邏輯規則化
文件合法性檢查歸結為一組業務規則的執行,建議使用Drools引擎來實現業務邏輯的規則化,開發者可以針對各類觸發事件,分別編寫出每組業務規則並形成DRL文件,Drools引擎解析、執行文件包含的所有規則,這大大簡化了傳統的高級語言編程,以表2的時間限製規則為例,隻要將它的Salience屬性定義為四個規則中的最大值,就可以最先執行,參數6:30和23:00可以在規則中直接修改且不需要重新編譯,此規則調用外部java類靜態方法檢測時間的合法性,這樣就將黄瓜下载APP最新版官方下载的業務邏輯和類庫代碼分離開了。
IP屏蔽技術
若發現網站被上傳了非法文件,可以根據文件上傳時間或者事件觸發時間在網站日誌中查找入侵IP,重點查找POST操作,發現後使用Java語句調用IPTABLES命令實現IP屏蔽。在Windows係統中可以調用IPSEC安全策略中的netsh命令實現IP屏蔽。
使用訂購的中國移動雲MAS服務,可以使用MAS服務提供的接口編寫Java短信類,將非法文件的文件名、處理方式和違反的規則名稱等參數寫入預定義模板發送給網站管理員,實現24小時短信通知。
入侵者為了找到網站漏洞,總是先用工具軟件掃描網站,尤其是最常見的登錄和管理頁麵,例如login.asp、index.asp等,這為網站防禦提供了一個蜜罐“誘騙”思路[5][6]:將正常使用的後台登錄和管理頁麵重命名隱藏起來,然後在網站根目錄下添加login或index等蜜罐頁麵,這些頁麵不提供任何服務功能,正常用戶應該訪問不到,隻是是為了引誘入侵者訪問。
服務程序定時讀取日誌文件,每次讀取從上次日誌結尾開始,利用正則表達式檢索訪問了蜜罐頁麵的IP,這些IP一定是嚐試入侵者,由於入侵者找到漏洞並成功入侵總是需要時間的,在不嚴重增加服務器負擔的情況下,采用較小時間間隔定時檢索日誌,可以及時發現大多數入侵企圖。
除了發現蜜罐頁麵的來訪IP之外,煙台網站建設還可以同時檢索SQL注入和XSS入侵痕跡,它們的表現是在GET或POST請求的URL字符串中含有非法字符和單詞,包括:
1.西文的單引號、雙引號、中括號和星號等,重點檢查單引號。
2.select、or、concat、from、union、where、char、group、administrator、count、alert等。
來訪的URL字符串都記錄在網站日誌文件中,為了盡可能發現攻擊性URL,建議管理員將待檢索的非法字符和單詞寫成正則表達式去匹配URL,若匹配則說明此URL含有攻擊,例如“.*select.*or”表示在URL查找select和or,匹配成功表明此URL存在SQL攻擊。
由於SQL的攻擊URL複雜多變,管理員需要不斷更新,而Drools規則的修改不需要重新編譯程序源代碼,所以建議將待檢索的正則表達式串編入Drools規則,在規則中調用外部類靜態方法驗證來訪URL是否與之匹配。
建議以命令行方式在服務器上安裝程序和所需的Drools開發包,以後台服務形式24小時伴隨網站運行,為了保證服務在線運行,將程序設置為開機啟動並定時檢查進程是否存在,在Window Server中使用計劃任務和PowerShell實現,在Linux係統中使用Crond和Shell實現。