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