來源:舊城雪 發(fā)布時間:2019-02-23 17:29:19 閱讀量:1135
1 跨站腳本攻擊(XSS攻擊)
XSS(Cross Site Scripting),跨站腳本攻擊。XSS是常見的Web攻擊技術之一.所謂的跨站腳本攻擊指得是:惡意攻擊者往Web頁面里注入惡意Script代碼,用戶瀏覽這些網頁時,就會執(zhí)行其中的惡意代碼,可對用戶進行盜取cookie信息、會話劫持等各種攻擊.
解決方案:
(1) 輸入過濾。永遠不要相信用戶的輸入,對用戶輸入的數(shù)據(jù)做一定的過濾。如輸入的數(shù)據(jù)是否符合預期的格式,比如日期格式,Email格式,電話號
碼格式等等。這樣可以初步對XSS漏洞進行防御。上面的措施只在web端做了限制,攻擊者通抓包工具如Fiddler還是可以繞過前端輸入的限制,修改請求注入攻擊腳本。
因此,后臺服務器需要在接收到用戶輸入的數(shù)據(jù)后,對特殊危險字符進行過濾或者轉義處理,然后再存儲到數(shù)據(jù)庫中。(2) 輸出編碼。服務器端輸出到瀏覽器的數(shù)據(jù),
可以使用系統(tǒng)的安全函數(shù)來進行編碼或轉義來防范XSS攻擊。在PHP中,有htmlentities()和htmlspecialchars()兩個函數(shù)可以滿足安全要求。相應的JavaScript的編
碼方式可以使用JavascriptEncode。(3) 安全編碼。開發(fā)需盡量避免Web客戶端文檔重寫、重定向或其他敏感操作,同時要避免使用客戶端數(shù)據(jù),這些操作需盡量在服
務器端使用動態(tài)頁面來實現(xiàn)。(4) HttpOnly Cookie。預防XSS攻擊竊取用戶cookie最有效的防御手段。Web應用程序在設置cookie時,將其屬性設為HttpOnly,
就可以避免該網頁的cookie被客戶端惡意JavaScript竊取,保護用戶cookie信息。(5)WAF(Web Application Firewall),Web應用防火墻,主要的功能是防范諸如網頁木馬、
XSS以及CSRF等常見的Web漏洞攻擊。由第三方公司開發(fā),在企業(yè)環(huán)境中深受歡迎。
2 跨站請求偽造(CSRF攻擊)
CSRF(Cross Site Request Forgery),即跨站請求偽造,是一種常見的Web攻擊,但很多開發(fā)者對它很陌生。CSRF也是Web安全中最容易被忽略的一種 網站攻擊
CSRF攻擊的原理:CSRF攻擊過程的受害者用戶登錄網站A,輸入個人信息,在本地保存服務器生成的cookie。然后在A網站點擊由攻擊者構建一條惡意鏈接跳轉到
B網站,然后B網站攜帶著的用戶cookie信息去訪問B網站.讓A網站造成是用戶自己訪問的假相,從而來進行一些列的操作,常見的就是轉賬.
解決方案:
(1) 驗證碼。應用程序和用戶進行交互過程中,特別是賬戶交易這種核心步驟,強制用戶輸入驗證碼,才能完成最終請求。在通常情況下,驗證碼夠很好地遏制
CSRF攻擊。但增加驗證碼降低了用戶的體驗,網站不能給所有的操作都加上驗證碼。所以只能將驗證碼作為一種輔助手段,在關鍵業(yè)務點設置驗證碼。(2) Referer Check。
HTTP Referer是header的一部分,當瀏覽器向web服務器發(fā)送請求時,一般會帶上Referer信息告訴服務器是從哪個頁面鏈接過來的,服務器籍此可以獲得一些信息用于處
理??梢酝ㄟ^檢查請求的來源來防御CSRF攻擊。正常請求的referer具有一定規(guī)律,如在提交表單的referer必定是在該頁面發(fā)起的請求。所以通過檢查http包頭referer的值
是不是這個頁面,來判斷是不是CSRF攻擊。但在某些情況下如從https跳轉到http,瀏覽器處于安全考慮,不會發(fā)送referer,服務器就無法進行check了。若與該網站同域的
其他網站有XSS漏洞,那么攻擊者可以在其他網站注入惡意腳本,受害者進入了此類同域的網址,也會遭受攻擊。出于以上原因,無法完全依賴Referer Check作為防御CSRF
的主要手段。但是可以通過Referer Check來監(jiān)控CSRF攻擊的發(fā)生。(3) Anti CSRF Token。目前比較完善的解決方案是加入Anti-CSRF-Token,即發(fā)送請求時在HTTP 請
求中以參數(shù)的形式加入一個隨機產生的token,并在服務器建立一個攔截器來驗證這個token。服務器讀取瀏覽器當前域cookie中這個token值,會進行校驗該請求當中的token
和cookie當中的token值是否都存在且相等,才認為這是合法的請求。否則認為這次請求是違法的,拒絕該次服務。這種方法相比Referer檢查要安全很多,token可以在用戶
登陸后產生并放于session或cookie中,然后在每次請求時服務器把token從session或cookie中拿出,與本次請求中的token 進行比對。由于token的存在,攻擊者無法再構造
出一個完整的URL實施CSRF攻擊。但在處理多個頁面共存問題時,當某個頁面消耗掉token后,其他頁面的表單保存的還是被消耗掉的那個token,其他頁面的表單提交時會出
現(xiàn)token錯誤。
3 SQL注入攻擊
SQL注入(SQL Injection),應用程序在向后臺數(shù)據(jù)庫傳遞SQL(Structured Query Language,結構化查詢語言)時,攻擊者將SQL命令插入到Web表單提交或輸入域名或頁面請求的查詢字符串,最終達到欺騙服務器執(zhí)行惡意的SQL命令.
解決方案:
(1) 防止系統(tǒng)敏感信息泄露。設置php.ini選項display_errors=off,防止php腳本出錯之后,在web頁面輸出敏感信息錯誤,讓攻擊者有機可乘。(2) 數(shù)據(jù)轉義。設置php.ini選項magic_quotes_gpc=on,它會將提交的變量中所有的’(單引號),”(雙引號),\(反斜杠),空白字符等都在前面自動加上\。或者采用mysql_real_escape()函數(shù)或addslashes()函數(shù)進行輸入?yún)?shù)的轉義。(3) 增加黑名單或者白名單驗證。白名單驗證一般指,檢查用戶輸入是否是符合預期的類型、長度、數(shù)值范圍或者其他格式標準。黑名單驗證是指,若在用戶輸入中,包含明顯的惡意內容則拒絕該條用戶請求。在使用白名單驗證時,一般會配合黑名單驗證。
4 文件上傳漏洞
上傳漏洞在DVBBS6.0時代被黑客們利用的最為猖獗,利用上傳漏洞可以直接得到WEBSHELL,危害等級超級高,現(xiàn)在的入侵中上傳漏洞也是常見的漏洞。該漏洞允許用戶上傳任意文件可能會讓攻擊者注入危險內容或惡意代碼,并在服務器上運行。 文件上傳漏洞的原理:由于文件上傳功能實現(xiàn)代碼沒有嚴格限制用戶上傳的文件后綴以及文件類型,導致允許攻擊者向某個可通過 Web 訪問的目錄上傳任意PHP文件,并能夠將這些文件傳遞給 PHP 解釋器,就可以在遠程服務器上執(zhí)行任意PHP腳本。
解決方案:
(1)檢查服務器是否判斷了上傳文件類型及后綴。 (2) 定義上傳文件類型白名單,即只允許白名單里面類型的文件上傳。 (3) 文件上傳目錄禁止執(zhí)行腳本解析,避免攻擊者進行二次攻擊。 Info漏洞 Info漏洞就是CGI把輸入的參數(shù)原樣輸出到頁面,攻擊者通過修改輸入?yún)?shù)而達到欺騙用戶的目的。