如今,Web業(yè)務(wù)平臺已經(jīng)在電子商務(wù)、企業(yè)信息化、政府門戶網(wǎng)站等得到廣泛應(yīng)用,很多企業(yè)都將應(yīng)用架設(shè)在Web平臺上,Web業(yè)務(wù)的迅速發(fā)展也引起了黑客們的強(qiáng)烈關(guān)注,他們將注意力從以往對傳統(tǒng)網(wǎng)絡(luò)服務(wù)器的攻擊逐步轉(zhuǎn)移到了對 Web 業(yè)務(wù)的攻擊上。黑客利用網(wǎng)站操作系統(tǒng)的漏洞和WEB服務(wù)程序的SQL注入漏洞等得到Web服務(wù)器的控制權(quán)限,輕則篡改網(wǎng)頁內(nèi)容,重則竊取重要內(nèi)部數(shù)據(jù),更為嚴(yán)重的則是在網(wǎng)頁中植入惡意代碼,使得網(wǎng)站訪問者受到侵害。
眾所周知,TCP/IP的設(shè)計是沒有考慮安全問題的,這使得在網(wǎng)絡(luò)上傳輸?shù)臄?shù)據(jù)是沒有任何安全防護(hù)的。攻擊者可以利用系統(tǒng)漏洞造成系統(tǒng)進(jìn)程緩沖區(qū)溢出,攻擊者可能獲得或者提升自己在有漏洞的系統(tǒng)上的用戶權(quán)限來運(yùn)行任意程序,甚至安裝和運(yùn)行惡意代碼,竊取機(jī)密數(shù)據(jù)。而應(yīng)用層面的軟件在開發(fā)過程中也沒有過多考慮到安全的問題,這使得程序本身存在很多漏洞,諸如緩沖區(qū)溢出、SQL注入等等流行的應(yīng)用層攻擊……這些均屬于在軟件研發(fā)過程中疏忽了對安全的考慮所致。程序代碼中的漏洞被利用,攻擊者能夠利用它,把惡意代碼強(qiáng)行插入到被攻擊的網(wǎng)站里。還有一種,就是跨站腳本攻擊XSS/CSS (Cross Site Script) attack。它利用網(wǎng)頁及cookies漏洞,攻擊者往Web頁面里插入惡意html代碼,當(dāng)用戶瀏覽該頁之時,嵌入其中Web里面的html代碼會被執(zhí)行,從而達(dá)到惡意用戶的特殊目的。比如通過跨站構(gòu)造一個表單,表單的內(nèi)容則為利用程序的備份功能或者加管理員等功能得到一個高權(quán)限。通過這二類方法攻擊者惡意篡改首頁地址、屏蔽鎖定、IE搜索引擎被修改、強(qiáng)行添加非法網(wǎng)站地址鏈接、甚到可在用戶電腦上利植木馬、下載病毒和蠕蟲、關(guān)閉反防毒軟件程序、遠(yuǎn)程訪問和控制用戶電腦,從而導(dǎo)致用戶電腦崩潰和網(wǎng)絡(luò)不暢。
很多惡意攻擊者出于不良的目的對Web 服務(wù)器進(jìn)行攻擊,想方設(shè)法通過各種手段獲取他人的個人賬戶信息謀取利益。正是因為這樣,Web業(yè)務(wù)平臺最容易遭受攻擊。同時,對Web服務(wù)器的攻擊也可以說是形形色色、種類繁多,常見的有掛馬、SQL注入、緩沖區(qū)溢出、嗅探、利用IIS等針對Webserver漏洞進(jìn)行攻擊。
Web業(yè)務(wù)平臺的不安全也在很大程度上取決于內(nèi)部原因,這使得站長們越來越重視系統(tǒng)的安全系數(shù)。而網(wǎng)站系統(tǒng)的開發(fā)人員們,也同樣越來越重視程序的安全性。我們從一開始就高度重視系統(tǒng)的安全性,在程序的開發(fā)中,有大量的時間投入和性能投入都是涉及網(wǎng)站安全的。在YD DotNetCms版中,開發(fā)團(tuán)隊更是充分利用NET平臺的新特性,采用了大量的新技術(shù)來保障網(wǎng)站安全。我們就簡單介紹一下YD DotNetCms 版在安全性方面所做的努力。
用戶密碼等關(guān)鍵數(shù)據(jù)采用MD5不可逆加密后保存;后臺啟用驗證碼和認(rèn)證碼;后臺Admin目錄可以更改目錄名;禁止直接訪問和外部鏈接到后臺頁面;對上傳文件類型進(jìn)行檢查,并刪除黑名單中列出類型的文件;對非HTML的表單進(jìn)行編碼后再存入數(shù)據(jù)庫;對SQL查詢語句中的查詢參數(shù)進(jìn)行過濾。跨站腳本攻擊;跨站請求偽造;越權(quán)操作;這些手段,經(jīng)過長期實(shí)踐驗證,確實(shí)能夠有效提高網(wǎng)站的安全性,因此在YD DotNetCms 版中全部得到了保留和改進(jìn)。網(wǎng)友可能會對MD5加密和驗證碼的作用提出質(zhì)疑,因為“2004年MD5算法已經(jīng)被中國科學(xué)家破譯”、“開啟了驗證碼后,網(wǎng)站仍然出現(xiàn)批量注冊的用戶和大量重復(fù)信息、廣告信息”等等。
在這里我們稍加說明:
MD5加密算法在數(shù)據(jù)加密領(lǐng)域得到廣泛應(yīng)用,是一種有效的保存關(guān)鍵信息的有效手段。2004年,中國科學(xué)家“破譯”了MD5算法,但這并不意味著你拿到一個經(jīng)過MD5算法加密后的字符串后,能夠逆向得到加密前的字符串。而我們采用MD5保存用戶密碼等數(shù)據(jù)信息,目的只是在于當(dāng)數(shù)據(jù)庫被別人得到后,不能得到用戶的原始密碼。至于破解,即使在MD5算法沒有被“破譯”的時候,一旦得到了加密結(jié)果,理論上通過暴力破解等手段,也同樣能夠得出密碼。因此采用MD5加密存儲關(guān)鍵信息,在網(wǎng)站管理系統(tǒng)中,仍然是一個有效的安全手段。圖像驗證碼功能已經(jīng)被廣泛應(yīng)用于網(wǎng)站的注冊、登錄、信息發(fā)表等需要防止暴力破解的地方。而且也確實(shí)是一個有效的防暴力破解手段(防垃圾信息和重復(fù)信息,依靠驗證碼是不可能徹底杜絕的)。動易首創(chuàng)的后臺登錄認(rèn)證碼手段,在確保服務(wù)器安全的前提下,徹底斷絕了通過盜取管理員密碼進(jìn)入后臺的途徑。和其它安全措施相結(jié)合,能夠非常有效地保護(hù)網(wǎng)站后臺的權(quán)限不被非法利用。
微軟的ASP.NET 2.0平臺和SQL Server 2005針對安全威脅,提供了大量的新特性。而YD DotNetCms充分利用了這些新特性,為提高網(wǎng)站的安全系數(shù),采用了大量的手段和措施:
采用多層結(jié)構(gòu),避免表現(xiàn)層直接與數(shù)據(jù)層交互,有效提高后端數(shù)據(jù)的安全;使用類型安全的SQL參數(shù)化查詢方式,從根本上解決SQL注入的問題;利用驗證控件,加強(qiáng)表單的客戶端驗證;利用ASP.NET的HttpModule,從整體上限制直接訪問和外部鏈接并判斷是否登錄,避免遺漏;URL參數(shù)類型、數(shù)量、范圍限制功能,解決惡意用戶通過地址欄惡意攻擊的問題;全站和管理后臺的IP訪問限定功能,以實(shí)現(xiàn)權(quán)限和訪問的最小化原則;網(wǎng)站的配置信息保存在Site.config文件,。config文件是默認(rèn)拒絕訪問的文件類型,以避免配置信息泄密;對程序集進(jìn)行混淆加密,避免惡意用戶通過反射利用代碼漏洞進(jìn)行攻擊;利用web.config中配置的自定義錯誤頁和全局的異常處理,屏蔽異常出現(xiàn)時暴露的敏感信息;對連接字符串進(jìn)行加密,在配置信息泄密后保護(hù)數(shù)據(jù)庫連接的敏感信息。有興趣的網(wǎng)友可以通過搜索上面列表中的關(guān)鍵詞來了解更多相關(guān)的信息。我們這里就只做一下簡單的介紹:首先是多層結(jié)構(gòu)開發(fā),這個在以往的快報中已經(jīng)介紹過了。為什么采用多層結(jié)構(gòu)能夠提高安全性呢?簡單來說,網(wǎng)站的訪問者在訪問網(wǎng)站時,僅僅是與表現(xiàn)層交互,而表現(xiàn)層的界面呈現(xiàn),是由業(yè)務(wù)邏輯層來完成,業(yè)務(wù)邏輯層和數(shù)據(jù)層之間,使用各種實(shí)體來進(jìn)行數(shù)據(jù)的交流。只有數(shù)據(jù)層才直接對數(shù)據(jù)庫進(jìn)行操作。通過表現(xiàn)層提交的各種表單,首先要經(jīng)過動易系統(tǒng)的過濾,成為業(yè)務(wù)層可用的參數(shù)。而這些參數(shù)又要轉(zhuǎn)換成各個實(shí)體的屬性,數(shù)據(jù)層還要將這些實(shí)體和屬性轉(zhuǎn)換成查詢參數(shù)后,才用與數(shù)據(jù)查詢。這樣就最大程度地防止了SQL注入類的攻擊(。NET環(huán)境下的各種編程語言都要求強(qiáng)類型變量,也就意味者像整數(shù)型的查詢參數(shù),如果傳送一個非整數(shù)型的參數(shù),是絕對不能通過的)。而在YD DotNetCms 的數(shù)據(jù)層,完全采用帶有參數(shù)的結(jié)構(gòu)化查詢,從根本上解決了SQL注入問題。
其次,ASP.NET的表單處理方式,在服務(wù)器端編程絕大部分時候采用的是讀取服務(wù)器控件屬性而非GET方式提交的表單值(提取過程是由。NET來轉(zhuǎn)換實(shí)現(xiàn)),使得偽造表單數(shù)據(jù)攻擊比ASP環(huán)境下要困難得多。YD DotNetCms 在ASP.NET自身提供的強(qiáng)大驗證控件的基礎(chǔ)上加以繼承和發(fā)展,開發(fā)出了更多、更強(qiáng)大的驗證控件??梢栽诳蛻舳?、服務(wù)器端對表單提交的數(shù)據(jù)合法性進(jìn)行更嚴(yán)格的驗證。
另外,除了禁止直接輸入地址訪問關(guān)鍵頁面外,YD DotNetCms 還對URL參數(shù)的類型、范圍等做出了嚴(yán)格限制和過濾,更基于ASP.NET的HttpModule,整體限制對指定范圍內(nèi)的路徑進(jìn)行直接訪問和外部鏈接,有效防范跨站腳本攻擊。結(jié)合超前強(qiáng)大的權(quán)限分配和IP限制,站長完全可以確保非指定人員絕對不能越權(quán)訪問后臺相關(guān)功能。
除了這些以外,我們還在一下方面做出了努力,取得階段性成果:
增強(qiáng)版日志記錄。詳細(xì)跟蹤記錄用戶操作異常和部分系統(tǒng)異常,讓站長和安全人員能通過日志分析系統(tǒng)可能存在的漏洞和bug,有針對性地進(jìn)行防范和完善。開發(fā)團(tuán)隊仍在繼續(xù)努力,對跨站腳本攻擊,采取了一些措施徹底解決。利用密碼強(qiáng)度限制,排除存在弱密碼的可能性。很多時候網(wǎng)站的密碼被盜取,往往是由于密碼不夠復(fù)雜,容易被暴力破解造成的。除了在防暴力破解方面采取措施外,設(shè)置強(qiáng)密碼才是關(guān)鍵。密碼強(qiáng)度限制方面為站長提供更安全的限制手段。使用SSL來加密數(shù)據(jù)傳輸;SSL加密是很多安全性要求高的網(wǎng)站(例如網(wǎng)上銀行、在線交易等)廣泛采用的手段。一旦普通網(wǎng)站能夠得到該技術(shù)支持,針對高級入侵和數(shù)據(jù)偽造、數(shù)據(jù)挾持等手段的安全系數(shù)也會得到極大提升。安全防范是一個復(fù)雜的、涉及面極廣的負(fù)責(zé)工程,在這里也只能是簡單概述,但是可以明確的是:YD DotNetCms是一個在安全方面空前強(qiáng)大的系統(tǒng)。
YD DotNetCMS
此外,對于Web安全和防止網(wǎng)頁篡改,還需要對于系統(tǒng)漏洞和應(yīng)用程序漏洞有深刻認(rèn)識,基于系統(tǒng)和應(yīng)用程序來做專門的Web服務(wù)和網(wǎng)頁防范措施及工具??偨Y(jié)了以下六條幫助應(yīng)對Web安全威脅:(1)找出系統(tǒng)的安全漏洞,及時升級最新補(bǔ)丁;(2)對動態(tài)網(wǎng)頁實(shí)施的保護(hù),在保護(hù)靜態(tài)網(wǎng)頁的同時保護(hù)網(wǎng)站腳本和后端數(shù)據(jù)庫;確認(rèn)腳本許可只賦予僅僅包含存在問題腳本的獨(dú)立目錄;(3)網(wǎng)頁文件保護(hù)策略, 網(wǎng)頁寫保護(hù),主動防御惡意代碼,防跨站攻擊,高效URL過濾技術(shù)(防止SQL注入),優(yōu)化Web性能和安全加固,雙機(jī)熱備;(4)鎖定文件、目錄和其他系統(tǒng)資源,設(shè)置Web服務(wù)器或守護(hù)進(jìn)程運(yùn)行最低數(shù)量的優(yōu)先權(quán),使應(yīng)用程序使用最少的特權(quán)運(yùn)行,不信任來自用戶甚至數(shù)據(jù)庫的任何信息有助于防止腳本利用,每當(dāng)您從不可信的源獲得信息時,都要確保它不包含任何可執(zhí)行代碼方可進(jìn)行處理;(5)使用網(wǎng)頁防篡改和恢復(fù)軟件;(6)做好服務(wù)器應(yīng)用程序本身安全防護(hù),避免漏洞;刪除不需要的應(yīng)用程序。
針對Web應(yīng)用的安全產(chǎn)品,可以分為網(wǎng)絡(luò)、Web服務(wù)器自身以及程序安全三方面。在網(wǎng)絡(luò)方面,可以考慮將防火墻、IDS/IPS、安全網(wǎng)關(guān)、防病毒墻、網(wǎng)站保護(hù)墻等產(chǎn)品部署在Web服務(wù)器前面,這樣可以防御大部分的攻擊。此外,可以通過部署更安全的Web服務(wù)器、Web服務(wù)器自身的保護(hù)系統(tǒng),比如網(wǎng)頁防篡改保護(hù)系統(tǒng)(防篡改保護(hù)和恢復(fù)軟件)、惡意主動防御系統(tǒng)、訪問控制系統(tǒng)、審計系統(tǒng)等產(chǎn)品,做到自動掃描和監(jiān)控,從而保護(hù)系統(tǒng)和文件。
以上就是【快來看!硬核推薦(購物網(wǎng)站安全解決方案)網(wǎng)站安全解決方案-網(wǎng)站安全解決方案】的全部內(nèi)容。


評論