淺談網(wǎng)絡(luò)購物系統(tǒng)的安全技術(shù)
作者: 繆艾君 來源: 未知 發(fā)布時間:2016-01-19 15:40
今天我們談?wù)?strong>網(wǎng)絡(luò)購物系統(tǒng)的安全技術(shù)。由于網(wǎng)絡(luò)購物系統(tǒng)存在于開放的Internet網(wǎng)絡(luò)環(huán)境中,代碼或者系統(tǒng)本身也可能存在漏洞,勢必可能受到網(wǎng)絡(luò)中病毒、木馬和其它方式的攻擊,網(wǎng)絡(luò)購物系統(tǒng)由其本身的特點,安全性要求是它的一項最重要的要求。因此需要對網(wǎng)絡(luò)購物系統(tǒng)的安全進(jìn)行充分的考慮。
二、系統(tǒng)安全性
Web網(wǎng)站存放于Web服務(wù)器,要保證網(wǎng)站的安全首先需要確保服務(wù)器系統(tǒng)的安全。對服務(wù)器做如下安全設(shè)置:
(1)安裝系統(tǒng)時選擇NTFS格式進(jìn)行安裝。安裝好后,設(shè)置自動更新,及時打好系統(tǒng)補(bǔ)丁。
(2)安裝好防火墻和殺毒軟件并及時更新,對防火墻應(yīng)設(shè)置適當(dāng)?shù)陌踩墑e和相應(yīng)的規(guī)則,設(shè)置端口保護(hù)。
(3)刪除默認(rèn)共享,將不需要的端口關(guān)掉,需要經(jīng)常使用的端口更改端口號,防止網(wǎng)絡(luò)攻擊。
(4)合理的設(shè)置操作系統(tǒng)的賬號,關(guān)閉guest賬號、刪除不必要的賬號,將Administrator用戶改名設(shè)置足夠強(qiáng)壯的密碼,對于其它賬號根據(jù)夠用的原則設(shè)置好合適的權(quán)限。
(5)關(guān)閉不需要用到的服務(wù),刪除或改名不安全的組件,禁用空連接,不安裝不必要的軟件防止第三方軟件漏洞。
三、網(wǎng)站安全技術(shù)
網(wǎng)站常常由于源程序的本身缺陷與程序編寫經(jīng)驗的不足、權(quán)限設(shè)置的不合理等因素的影響,可能存在諸如腳本信息泄露、SQL注入、繞過權(quán)限驗證、木馬等安全問題,在應(yīng)用過程中注意好相應(yīng)的設(shè)置、進(jìn)行相應(yīng)的處理就能很大程度上減少此類問題帶來的影響。
(1)IIS安全設(shè)置
關(guān)閉并刪除默認(rèn)站點,系統(tǒng)所在位置與系統(tǒng)不在同一個分區(qū),刪除不必要的IIS映射和擴(kuò)展,把一切ASP 錯誤,服務(wù)器返回的信息設(shè)置為http500 錯誤,設(shè)置好網(wǎng)站的Web權(quán)限,一般情況下不給那些靜態(tài)網(wǎng)站以“腳本和可執(zhí)行”權(quán)限。動態(tài)網(wǎng)站只要給個“純腳本”權(quán)限就夠了,對于那些上傳文件的存放目錄,執(zhí)行權(quán)限設(shè)為“無” 。
(2)為了防止非法用戶將有可能運(yùn)行上傳的腳本、木馬等,進(jìn)而控制站點、甚至整個服務(wù)器,上傳目錄應(yīng)設(shè)置不給腳本執(zhí)行權(quán)限,對上傳的數(shù)據(jù)的文件類型也需要進(jìn)行限制。
(3)防止權(quán)限驗證程序被繞過
對于需要通過身份驗證后才能被訪問的頁面,可以繞過身份驗證, 直接進(jìn)入到該頁面,這樣做為用戶區(qū)分與權(quán)限分配的驗證程序就失去了原有的作用。為防范此漏洞, 可以通過對需要通過身份驗證的頁面添加對存儲在cookies或session對象中的再次驗證來實現(xiàn)安全控制。當(dāng)訪問者通過身份驗證頁面后, 就把Cookies信息或?qū)ο蟮膶傩源鎯ζ饋? 當(dāng)訪問者試圖登錄到有效鏈接頁面時, 將當(dāng)前身份信息與存儲的驗證信息行比較, 如果不匹配,則拒絕訪問。
(4)防范SQL注入攻擊
Web系統(tǒng)經(jīng)常要以用戶輸入或者傳遞的參數(shù)來構(gòu)造SQL語句,并讓后臺的數(shù)據(jù)庫執(zhí)行。SQL注入是系統(tǒng)通過輸入的內(nèi)容構(gòu)造出來的SQL語句,在執(zhí)行時改變了查詢條件或者附帶執(zhí)行了攻擊者注入的整個SQL語句,從而讓攻擊者達(dá)到了非法的目的 。
程序開發(fā)人員在編寫網(wǎng)站程序時, 應(yīng)對用戶可能輸入的信息進(jìn)行檢驗、過濾, 阻止惡意代碼的攻擊, 以達(dá)到注入攻擊的防御效果。目前這種檢驗方法一般有兩種。
?、?替換或刪除敏感字符/字符串
對用戶傳遞過來的參數(shù), 使用替換函數(shù), 將認(rèn)為危險的所有字符替換成為相應(yīng)的安全字符。
?、?在服務(wù)器正式處理前對提交數(shù)據(jù)進(jìn)行檢驗。
如果檢驗出有非法字符輸入時, 服務(wù)器立即終止處理, 不給SQL注入攻擊的機(jī)會。
(5)ASP腳本加密
為有效地防止ASP 源代碼泄露, 可以對ASP 頁面進(jìn)行加密。使用微軟的Script Encoder 對ASP 頁面進(jìn)行加密,操作簡單、收效良好。
四、數(shù)據(jù)庫安全
在ASP環(huán)境中,常用的后臺數(shù)據(jù)庫是SQL Server,其安全技術(shù)主要有。
(1)更改sa口令,取消guest賬號,SA具有對SQL Server數(shù)據(jù)庫操作的全部權(quán)限,但在安裝SQL Server時sa缺省口令為空,為SQL Server帶來了潛在的隱患,應(yīng)把sa的口令換為更安全的口令,同時不能把sa賬號的密碼寫在應(yīng)用程序或者腳本中。
(2)控制訪問權(quán)限
定義用戶和角色對數(shù)據(jù)庫、數(shù)據(jù)表和數(shù)據(jù)列的訪問權(quán)限,限制用戶對表擁有直接的查詢、更改、插入、刪除權(quán)限,可以通過給用戶訪問視圖和執(zhí)行存儲過程的權(quán)限,以保證數(shù)據(jù)庫的安全。
(3)限制SQL Server自帶的存儲過程
在SQL Server攻擊中有一類是構(gòu)造特殊字符串調(diào)用SQL Server系統(tǒng)中master數(shù)據(jù)庫自帶的存儲過程來獲取權(quán)限??梢匀コ蛳拗芐QL Server系統(tǒng)中自帶的存儲過程。
(4)加強(qiáng)數(shù)據(jù)庫訪問日志的監(jiān)視,定期備份數(shù)據(jù)庫審核數(shù)據(jù)庫登錄事件的“失敗和成功”,在實例屬性中選擇“安全性”,將其中的審核級別選定為全部,這樣在數(shù)據(jù)庫系統(tǒng)日志里就詳細(xì)記錄了所有賬號的登錄事件,一旦出現(xiàn)問題能夠查出原因,及時補(bǔ)救。同時,制定完整的數(shù)據(jù)庫備份策略,在必要的時候能夠?qū)崿F(xiàn)對數(shù)據(jù)庫的恢復(fù)。
五、數(shù)據(jù)加密技術(shù)
用戶的密碼在傳輸時可能被竊取,數(shù)據(jù)庫中的密碼可能被系統(tǒng)的管理員查看或破解,如果數(shù)據(jù)庫被入侵那么數(shù)據(jù)庫中的信息將毫無安全性可言,為了防止授權(quán)用戶的密碼被泄露,系統(tǒng)應(yīng)該在數(shù)據(jù)傳輸過程以及數(shù)據(jù)庫中對數(shù)據(jù)以加密的形式進(jìn)行傳輸和保存。
MD5作為最為常用的一項加密算法,其以加密強(qiáng)度頗大而著稱,被廣泛用于加密和解密技術(shù)上。在使用MD5的Web系統(tǒng)驗證用戶時,在客戶端對用戶的密碼進(jìn)行加密,然后將加密后的數(shù)據(jù)傳輸?shù)椒?wù)器端與數(shù)據(jù)庫中保存的經(jīng)過MD5加密的該用戶的密碼進(jìn)行比較,如果相等則表示該用戶是合法的。通過這樣方式驗證用戶,即使用戶密碼的MD5值被竊取也是無所謂的,因為MD5函數(shù)的計算過程是不可逆的,知道計算值是計算不出原來的字符串的。
對于一部分密碼的設(shè)置過于簡單的用戶,可能存在攻擊者使用查詢的方法通過對搜集的大量MD5的密文和明文的對應(yīng)信息對用戶密碼進(jìn)行匹配嘗試來獲取密碼信息的隱患。對于這種攻擊方式,我們可以采取以下幾種方法來解決:
(1)增強(qiáng)用戶密碼
即用戶密碼的二次加密。將用戶密碼加上特殊的前綴或后綴,包含數(shù)字、字母、特殊符號等,使密碼長度加長,強(qiáng)度明顯增強(qiáng),防止用戶設(shè)置的密碼過短、過于簡單而易破解
。如:在密碼前、后或中間加上一段特殊字符串“!&a%S%2!#@)?>”,或一串隨機(jī)碼(如驗證碼),把用戶密碼加長至20位以上,再經(jīng)MD5碼加密,可使密碼強(qiáng)度增加,破解的難度明顯增大,即使被下載破解了,由于密碼人為加長,與實際密碼不符而無法得知其真實密碼。
(2)用MD5 碼多次加密
一種方法是直接對MD5加密過的數(shù)據(jù)進(jìn)行二次或多次加密。如前面所說的密碼“admin888”我們把它再MD5 一次,即md5(md5('admin888'));得到的值再拿到cmd5.com上去破解,過了很長時間,沒有破解成功。另一種方法是在每次加密后從中抽取部分值進(jìn)行再加密,比如“我愛你”,加密后“1E6986ACEC7BAE541AB7B37B99260DAF”,我們可以取任意一部分進(jìn)行再加密,比如取前18 位“1E6986ACEC7BAE541”進(jìn)行再加密,這種做法修改也很簡單,比如asp 中調(diào)用是m d 5 (“p a s s w o r d”) 那么可以改成m d 5 ( l e f t ( m d 5(“password”),16))。
(3)修改MD5算法
這是最有效、最可靠、最捷徑的方法,其特點是加密后的數(shù)據(jù)和加密前非常類似,但是不會被破解。打開MD5.asp 文件,MD5 這個散列算法的關(guān)鍵地方,是MD5 中的4 個常數(shù),A 、B 、C、D 四個緩沖區(qū)寄存器,它們的初始值是:a = 0x67452301;b = 0xEFCDAB89;c = 0x98BADCFE;d = 0x10325476 .
MD5 的算法過程主要是一些異、或、求模等的運(yùn)算,A、B、C、D四個值共是16 進(jìn)制的4*8=32位,那么可計算可能被破解的概率空間,如果改動得越多,被破解的可能性也就越小。實際上,只要把初始值進(jìn)行稍微改變,比如只改變其中一位,也不必改動算法的其它部分,就產(chǎn)生自己的新MD5 散列算法。如:把d=0x10325476改為d=0x10325376,這樣你就有一個與眾不同的MD5 算法,即使你的數(shù)據(jù)庫被下載,你也可以放心地使用。
以上是網(wǎng)絡(luò)購物系統(tǒng)安全技術(shù)的全部內(nèi)容,了解更多干貨內(nèi)容,請繼續(xù)關(guān)注!
猜你喜歡
【本站聲明】 1、本網(wǎng)站發(fā)布的該篇文章,目的在于分享電商知識及傳遞、交流相關(guān)電商信息,以便您學(xué)習(xí)或了解電商知識,請您不要用于其他用途; 2、該篇文章中所涉及的商標(biāo)、標(biāo)識的商品/服務(wù)并非來源于本網(wǎng)站,更非本網(wǎng)站提供,與本網(wǎng)站無關(guān),系他人的商品或服務(wù),本網(wǎng)站對于該類商標(biāo)、標(biāo)識不擁有任何權(quán)利; 3、本網(wǎng)站不對該篇文章中所涉及的商標(biāo)、標(biāo)識的商品/服務(wù)作任何明示或暗示的保證或擔(dān)保; 4、本網(wǎng)站不對文章中所涉及的內(nèi)容真實性、準(zhǔn)確性、可靠性負(fù)責(zé),僅系客觀性描述,如您需要了解該類商品/服務(wù)詳細(xì)的資訊,請您直接與該類商品/服務(wù)的提供者聯(lián)系。