近幾年黑客攻擊防不勝防,這就需要我們在做任何操作都要加強安全防范意識。本文分享下虛擬主機Web應(yīng)用開發(fā)時應(yīng)該注意到的安全問題,希望可以幫大家加強安全防護(hù)。
近幾年黑客攻擊防不勝防,這就需要我們在做任何操作都要加強安全防范意識。本文分享下
虛擬主機Web應(yīng)用開發(fā)時應(yīng)該注意到的安全問題,希望可以幫大家加強安全防護(hù)。
表單數(shù)據(jù)驗證
在數(shù)據(jù)被輸入程序前必須對數(shù)據(jù)合法性的檢驗。非法輸入問題是最常見的Web應(yīng)用程序安全漏洞。
需要做到:對任何輸入內(nèi)容進(jìn)行檢查。接受所有可以接受的內(nèi)容,拒絕所有不能接受的內(nèi)容。
所有提交的表單數(shù)據(jù),都必須驗證兩次,即提交前在客戶端用Javascript驗證,提交后在
服務(wù)器端用腳本再次驗證,保證數(shù)據(jù)的合法性。尤其是對于必填項,不僅需要同時在客戶端和服務(wù)端驗證是否做了輸入,還要驗證輸入的數(shù)據(jù)格式是否正確。
需要注意:在客戶端上的Javascript驗證并不是真正意義上的檢查。比如惡意用戶很容易在自己的終端上禁用腳本執(zhí)行,從而防止客戶端的內(nèi)容檢查腳本運行,使得他可以輸入惡意代碼并成功地提交表單。
對于圖像上傳功能,需要驗證上傳圖像的格式及大小是否合乎要求。
防范SQL語句注入攻擊
程序需要對所有從外部接收到的數(shù)據(jù)進(jìn)行過濾,防止惡意攻擊。主要防范的字符有“'|script|exec|insert|select|delete|update|count|chr|mid|master|truncate|declare”。
使用積極的過濾而不是消極的過濾。換句話說,就是檢查應(yīng)該輸入什么,而不是檢查不應(yīng)該輸入什么。只規(guī)定哪些內(nèi)容不應(yīng)該輸入,會留下太多的漏洞。因為有很多內(nèi)容都不應(yīng)該被輸入。積極的過濾方式應(yīng)該包括:
?是否為空(需要去掉空格后判斷)
?是否是正確的數(shù)據(jù)類型(字符串,整數(shù)等)
?是否要求帶有參數(shù)
?字符編碼是否允許
?輸入內(nèi)容是否達(dá)到了內(nèi)容長度的最大或者最小界限
?是否允許輸入空值
?如果應(yīng)該輸入數(shù)字,那么確定數(shù)字大小的范圍。
?輸入內(nèi)容是否造成了數(shù)據(jù)重復(fù),如果是,判斷這種情況是否可以接受。
?輸入內(nèi)容是否符合格式要求(比如是否采用正則表達(dá)式)
?如果是通過下拉列表選取的內(nèi)容,確保其包含了有效的值
地址欄變量需要進(jìn)行驗證
對于從地址欄上接收到的變量,必須要驗證其合法性。例如,如果從地址欄上收到了文章ID值,則需要驗證ID是否為數(shù)字,是否有攻擊字符等。
跨站攻擊的預(yù)防
在驗證提交的數(shù)據(jù)時,為防止跨站攻擊,可以檢查上一個頁面是否為本站,另外,過濾
<”替換為“<”,把>
目錄和文件夾的安全
用戶只能訪問網(wǎng)站目錄下的內(nèi)容,確保用戶不能訪問網(wǎng)站目錄以外的目錄。
程序中涉及文件包含的地方,要確認(rèn)所有包含的文件的位置正確。為了防止非法包含文件,應(yīng)特別小心“./”或“../”的使用。
后臺所有程序頁面需要做授權(quán)驗證
如果未經(jīng)過成功登錄,不允許訪問任何一個后臺程序頁面。如果用Session驗證,Session有效期不可以太長,建議為15分鐘。
成功登陸后的用戶,需要驗證是否有某個操作的權(quán)限。
關(guān)鍵信息需要加密
對于密碼、會話令牌等關(guān)鍵信息,需要進(jìn)行加密后再保存到數(shù)據(jù)庫,不允許用明文方式。一般采用MD5加密方式。
配置文件安全
程序中的配置文件(重點是數(shù)據(jù)庫連接配置)需要重點進(jìn)行安全保護(hù),配置文件不能允許用戶直接訪問,配置文件的文件擴展名不能為.inc、.txt,必須為可執(zhí)行腳本擴展名,如.asp、.php、.jsp、.aspx…
數(shù)據(jù)庫安全
數(shù)據(jù)庫文件需要重點安全保護(hù),對于使用access數(shù)據(jù)庫的程序,不可以允許數(shù)據(jù)庫直接可以通過瀏覽器下載,數(shù)據(jù)庫文件的路徑和文件名稱需要不易猜測到,數(shù)據(jù)庫文件的擴展名不能為.mdb??梢栽O(shè)置服務(wù)器來禁止此類型的文件下載。
使用“最低權(quán)限”限制數(shù)據(jù)庫用戶的權(quán)限。如果使用SQLSERVER或MySQL數(shù)據(jù)庫,可以考慮只給瀏覽用戶以讀權(quán)限,后臺用戶以讀、寫及刪權(quán)限。
資源的釋放
程序中的使用了關(guān)鍵資源后,必須進(jìn)行顯式釋放和關(guān)閉,尤其是數(shù)據(jù)庫連接、文件句柄等資源。
防止過分詳細(xì)的錯誤提示。
攻擊者經(jīng)常會故意輸入錯誤的內(nèi)容,進(jìn)而分析系統(tǒng)給出的錯誤提示信息,從中獲取系統(tǒng)信息,發(fā)現(xiàn)可能存在的漏洞。
對于使用Access數(shù)據(jù)庫的用戶來說,過于詳細(xì)的錯誤提示可能會暴露出數(shù)據(jù)庫文件的路徑。
友好的操作反饋提示
對于流程性的操作,需要給用戶的操作以友好性反饋提示,讓用戶了解自己的操作是否有問題,問題在什么地方。
例如,會員注冊表單,如果用戶提交時,忘記填寫某些項,可以在該項后以醒目的顏色來提示,提示的顯示最好以AJAX技術(shù)實現(xiàn)無刷新效果,提高用戶體驗。
后臺的程序?qū)τ谝恍┎僮?,如刪除、審核,必須讓用戶確認(rèn)一下才可以執(zhí)行。
不管用戶操作成功或失敗,都需要給與提示信息。
驗證碼的使用
對于用戶注冊、用戶登陸、調(diào)查問卷、在線反饋、評論等程序,需要加上驗證碼,防止機器人繞過限制提交垃圾信息。
河南億恩科技股份有限公司(mszdt.com)始創(chuàng)于2000年,專注服務(wù)器托管租用,是國家工信部認(rèn)定的綜合電信服務(wù)運營商。億恩為近五十萬的用戶提供服務(wù)器托管、服務(wù)器租用、機柜租用、云服務(wù)器、網(wǎng)站建設(shè)、網(wǎng)站托管等網(wǎng)絡(luò)基礎(chǔ)服務(wù),另有網(wǎng)總管、名片俠網(wǎng)絡(luò)推廣服務(wù),使得客戶不斷的獲得更大的收益。
服務(wù)器/云主機 24小時售后服務(wù)電話:
0371-60135900
虛擬主機/智能建站 24小時售后服務(wù)電話:
0371-55621053
網(wǎng)絡(luò)版權(quán)侵權(quán)舉報電話:
0371-60135995
服務(wù)熱線:
0371-60135900