在移動互聯網的高速發展下,一切都開始進入了以數據和流量為王時代。那么企業想要發展就要開始改變經營模式,從而就出現了線下和線上運營模式。通過網絡推廣宣傳擴大知名度,做線上就必須要有自己的網站,但是有了網站后還需要用心維護,不可放任不管。因為這其中總會出現太多的問題,比如網站打不開,網站后臺被入侵,網站被劫持等等各種情況,那么如何避免你的網站被入侵呢?
般有些小的公司或者是店鋪什么的想要做一個網站,但是因為店小,會考慮到成本的問題,自己會一點或者是身邊朋友會一點的就直接找免費的開源程序后臺來建站,導致了后期維護難,漏洞多等各種問題,比如網站被入侵的事件就常有發生。
1.網站主頁被篡改,可能會出現將主頁修改為某些不正規的網站或者是源代碼根部被添加大量黑鏈代碼。
2.或者是在網站主頁中的關鍵字中添加單個網址或者標簽,隱藏其鏈接,讓人不經意發現。
3.或者通過SQL注入原理入侵,利用漏洞造成單引號注入,以此在用戶登錄認證密碼時來收集用戶資料和賬戶密碼等。
4.或者通過木馬程序或者病毒來實現遠程文件的上傳、下載、文件修改等程序的操作。
1.網度通信建議對于搭建網站的服務器用不到的功能,選擇刪除或者禁用。針對網站的一些功能也是選擇刪除或者禁用。以此來避免網絡犯罪分子通過更改默認的后臺登錄路徑等方式入侵。
2.網站的安全密碼需要定期更換,而且要嚴格的運用中文+數字+英文字母結合的方式設置。
3.不要在公共場合連接免密的無線WiFi,不使用公共地方的電腦以及網絡去登錄網站輸入密碼。
4.每天需要定時確認查看網站內部的友鏈,避免友鏈被掛馬或者是被指向涉黃、涉政、涉賭等網站。
5.定期對系統進行排查、升級,對漏銅修復更新等。
1、漏洞的多少除了程序本身之外,和使用量也有關,織夢dedecms的市場占有率相當高,用的人也多,肯定找漏洞的人就多了,甚至網上還有各種針對織夢漏洞爆破掛馬的工具,連剛出生的嬰兒都能操作的批量掛馬工具,問你怕了沒,相反有的程序都沒有幾個人用,沒有人找漏洞,暴露出來的也就少了。
2、織夢dedecms官方不作為,最近1,2年除了常規更新,其他更新早已停更很久很久。
3、由于織夢dedecms的簡單上手快,很多新手和小白前期沒了解過織夢安全這一塊,網站上線后連后臺目錄dede文件夾也沒改,甚至連默認的管理員賬號密碼都是默認的,別人隨意進入后臺搞亂。
Ps:如果你又想安全又不想放棄織夢,那就跟著我看下面的教程,動手打造一個安全的織夢網站吧,下面的教程只是常規的防范,足以應付那些利用工具掃站和搗亂的小人小屁孩,更深入的安全防護將在下一個教程說織夢內核改名和各個文件夾權限,一開始太復雜我怕整暈倒你,為了你的身心健康還是先從簡單開始吧。
第一步:備份
1-1、后臺-系統-數據庫備份/還原,數據備份。
1-2、打包整站下載到你電腦上來,防止被改壞了無法還原回來。
第二步:最新織夢
http://www.dedecms.com/products/dedecms/downloads/ [官網] 下載對應編碼的最新織夢程序包
第三步:刪除最新織夢程序包那些沒用的又容易被掛馬入侵的程序文件
3-1、刪除以下文件夾和文件
member 會員文件夾整個刪除
special 專題文件夾整個刪除
install 安裝文件夾整個刪除
robots.txt 文件刪除
3-2、刪除 /templets/default 官方默認模板這個文件夾
3-3、plus 文件夾除了以下 1個文件夾 和 5個php文件,其他的文件統統刪除
/plus/img (這個文件夾)
/plus/count.php
/plus/diy.php
/plus/list.php
/plus/search.php
/plus/view.php
3-4、把 dede 后臺文件夾改名,改復雜一點,改成爹媽都不認識它。
第四步:修復剛剛下載的織夢最新程序包里已知漏洞
4-1、打開
/include/dialog/select_soft_post.php 找到
$fullfilename = $cfg_basedir.$activepath."/".$filename;
在它上面加入
if (preg_match('#.(php|pl|cgi|asp|aspx|jsp|php5|php4|php3|shtm|shtml)[^a-zA-Z0-9]+$#i', trim($filename))) { ShowMsg("你指定的文件名被系統禁止!",'javascript:;'); exit;}
4-2、打開 /dede/media_add.php 找到
$fullfilename = $cfg_basedir.$filename;
在它上面加入
if (preg_match('#.(php|pl|cgi|asp|aspx|jsp|php5|php4|php3|shtm|shtml)[^a-zA-Z0-9]+$#i', trim($filename))){ ShowMsg("你指定的文件名被系統禁止!",'java script:;'); exit;}
這一步需要一點專業知識,如果你實在不懂,就到群里虛心請教,遇到可疑的地方截圖請教別人,慢慢見的后門和木馬代碼多了,你就離成為大神不遠了。
5-1、每一個跟模板有關的js文件都要一一打開來細心檢查,因為掛馬很多在js文件中,不然你前面和后面的工作都白做了。
5-2、每一個跟模板有關的css 和 images 文件夾下都要細心檢查是否有后門文件,除了圖片文件、css文件、字體文件,其他的一律刪除,刪錯了也不用擔心,有整站打包的備份在。
5-3、每一個模板htm文件都要細心檢查是否有掛馬代碼存在,檢查你的模板文件夾里是否有后門文件,比如php文件,asp文件,其他可疑的格式文件一律刪除,刪錯了也不用擔心,有整站打包的備份在。
5-4、你備份文件中的文檔圖片文件夾 uploads 文件夾,每一個文件夾都要打開,都要細心檢查是否有后門文件,除了圖片文件和你的附件,其他的一律刪除,刪錯了也不用擔心,有整站打包的備份在。
5-5、/data/common.inc.php 和
/data/config.cache.inc.php 一會配合打包要用到,所以也要檢查。
5-6、/include/extend.func.php 可能有二次開發的自定義方法在里面,所以也要檢查。
5-7、其他你曾經二次開發修改過的文件。
/data/common.inc.php
/data/config.cache.inc.php
/include/extend.func.php
/templets/你的模板文件夾
/uploads
其他你曾經二次開發修改過的文件
還有可能你的模板關聯的css 和 js 和 images圖片,這個自己看著辦,復制進來后,打包本地整好的文件
第七步:清空線上網站所有文件,上傳本地整好的文件包
7-1、把主機里現在網站里的所有文件清空,不需要到mysql清除數據哦。虛擬主機的小伙伴可以借助主機面板一鍵清空,省事又干凈。
7-2、把剛剛整理好的最新程序打包上傳到主機里解壓出來,不需要重新安裝哦
7-3、登錄網站后臺,打開 系統-系統設置-基本參數,點擊確認一次,再去生成全站。
后臺-系統-SQL命令行工具,執行
TRUNCATE #@__myad;TRUNCATE #@__myadtype;
linux主機的用戶一般都是apache環境,使用 .htaccess 文件來設置,如果你網站根目錄已經存在這個文件,那就復制一下代碼添加進去,沒有這個文件的小伙伴可以下載下來放進去
RewriteEngine on#安全設置 禁止以下目錄運行指定php腳本RewriteCond % !^$RewriteRule a/(.*).(php)$ – [F]RewriteRule data/(.*).(php)$ – [F]RewriteRule templets/(.*).(php|htm)$ – [F]RewriteRule uploads/(.*).(php)$ – [F]
windows主機的用戶一般都是iis7、iis8環境,使用 web.config 文件來設置,請確認你的主機已經開啟了偽靜態而且網站根目錄有 web.config 文件,有這個文件的可以復制以下代碼添加到對應的rules內,沒有這個文件的小伙伴可以下載下來放進去
<rule name="Block data" stopProcessing="true"> <match url="^data/(.*).php$" /> <conditions logicalGrouping="MatchAny"> <add input="{USER_AGENT}" pattern="data" /> <add input="{REMOTE_ADDR}" pattern="" /> </conditions> <action type="AbortRequest" /></rule><rule name="Block templets" stopProcessing="true"> <match url="^templets/(.*).php$" /> <conditions logicalGrouping="MatchAny"> <add input="{USER_AGENT}" pattern="templets" /> <add input="{REMOTE_ADDR}" pattern="" /> </conditions> <action type="AbortRequest" /></rule><rule name="Block SomeRobot" stopProcessing="true"> <match url="^uploads/(.*).php$" /> <conditions logicalGrouping="MatchAny"> <add input="{USER_AGENT}" pattern="SomeRobot" /> <add input="{REMOTE_ADDR}" pattern="" /> </conditions> <action type="AbortRequest" /></rule>
Nginx下禁止指定目錄運行PHP腳本
注意:這段配置文件一定要放在 location ~ .php(.*)$ 的前面才可以生效,配置完后記得重啟Nginx生效。
location ~* /(a|data|templets|uploads)/(.*).(php)$ { return 403;}
在網站安全建設的道路上,使命任重而道遠,所以我們需要提前做好安全防御措施,以此來防患于未然。最好的防御是布局好防火墻把這些都阻擋在外,防止一切病毒侵入!