安全性測試

安全性測試

? 認證與授權(quán)

? Session和cookie

? 文件上傳漏洞

? SQL 注入

? XSS 跨站攻擊

? DDoS拒絕服務(wù)攻擊

-認證和授權(quán)

? 認證的目的是為了認出用戶是誰,而授權(quán)的目的是為了決定用戶能夠做什么。

? 認證:Authentication (who am I ?)

? 認證實際上就是一個驗證憑證的過程。

? 多因素認證的強度要高于單因素的認證,但是在用戶體驗上,多因素認證或多或少會帶來一些不方便的地方。

? 密碼策略:長度、復(fù)雜度,要經(jīng)過不可逆的加密后保存在數(shù)據(jù)庫中。

? 多因素認證:支付寶

? 登錄失敗的錯誤提示消息不應(yīng)該明確告知是用戶名不存在還是密碼錯誤,避免客戶端使用暴力破解方式。

? 必須要登錄成功后才能訪問的頁面中都需要用Session 對客戶端進行驗證,確認當(dāng)前Session 已經(jīng)登錄過,否則訪問該頁面時應(yīng)該自動跳轉(zhuǎn)到登錄頁面。避免客戶端直接在URL 地址欄輸入某個地址進行訪問,繞開登錄驗證。

? 登錄失敗后的限制策略,比如連接5 次登錄失敗,應(yīng)該暫停用戶登錄,并將該信息發(fā)送給系統(tǒng)管理員,并告知客戶端的IP 地址。

? 登錄時應(yīng)該使用圖片驗證碼,包括后續(xù)的一些表單提交的動作,都要使用圖片驗證碼。避免使用工具發(fā)送數(shù)據(jù)包,目前圖片驗證碼是被證明最可靠的防攻擊手段之一。

? 授權(quán):Authorization (what can I do?)

? 某個主體對某個對象需要實施某種操作,而系統(tǒng)對這種操作的限制就是權(quán)限控制。

? 用戶只能訪問被授權(quán)的模塊和功能。

? 用戶不能通過直接輸入URL 地址的方式進行越權(quán)訪問。

? 權(quán)限的控制只能由系統(tǒng)管理員來維護,其它用戶不能做任何修改。

? 權(quán)限控制要細,最好細到增刪查改這種功能上,并且不同模塊有不同的權(quán)限。

-Session和Cookie

? 對客戶端生成Session ID 時最好與IP 地址進行綁定,避免非法客戶端獲取到別人的Session ID 后來冒充合法用戶。

? Cookie 的信息由于是保存在客戶端,是公開的,所以對于關(guān)鍵信息需要加密處理。

? Cookie 的作用域需要定義清楚,不能一味的全部定義成 / ,這樣很有可能站點虛擬目錄之間的Cookie 信息互相影響,產(chǎn)生沖突。除非我們的站點只有一個虛擬目錄。

? 一些重要的具有控制功能的數(shù)據(jù)不能保存在Cookie 當(dāng)中,而必須將它保存在Session 中,避免人為地篡改Cookie 非法獲取到系統(tǒng)控制權(quán)。

-Session測試

? Session 不能過度使用,會加重服務(wù)器維護Session 的負擔(dān)。

? Session 的過期時間設(shè)置是否合理。

? Session 過期后是否客戶端是否生成新的SessionID。

-文件上傳漏洞

? 對文件類型進行過濾,比如只能允許上傳圖片或壓縮文件。不能允許用戶上傳可執(zhí)行程序或代碼

? 見案例:訪問secure中的兩個php文件

? apache\bin\php.ini disable_function=phpinfo system

? 不能單純只是以文件的后綴名來進行類型的判斷

? 不能單純只是在客戶端使用Javascript 對文件類型進行判斷,而應(yīng)該在服務(wù)器端進行

? 文件上傳的大小必須有限制

-SQL注入

? 注入攻擊的本質(zhì),是把用戶輸入的數(shù)據(jù)當(dāng)成代碼執(zhí)行。

? 兩個關(guān)鍵條件:

????- 用戶能夠控制輸入

????- 原本程序要執(zhí)行的代碼,拼接了用戶輸入的數(shù)據(jù)。

? 攻擊演示:http://localhost:8008/secure

-SQL注入防治

? 不要信任用戶的輸入。對用戶的輸入進行校驗,可以通過正則表達式,或限制長度;

? 不要使用動態(tài)拼裝SQL,可以使用參數(shù)化的SQL 或者直接使用存儲過程進行數(shù)據(jù)查詢存取。

? 不要使用管理員權(quán)限的數(shù)據(jù)庫連接,為每個應(yīng)用使用單獨的權(quán)限有限的數(shù)據(jù)庫連接。

? 不要把機密信息直接存放,加密敏感信息。

? 應(yīng)用的異常信息應(yīng)該給出盡可能少的提示,最好使用自定義的錯誤信息對原始錯誤信息進行包裝

? 將服務(wù)器設(shè)置修改為支持自動將單引號和雙引號進行轉(zhuǎn)義。

? SQL 注入的檢測方法一般采取輔助軟件或網(wǎng)站平臺來檢測,軟件一般采用SQL 注入檢測工具如IBM 的AppScan 等。

-DDoS拒絕服務(wù)攻擊

? DDos攻擊原理就是模擬真實用戶來使用系統(tǒng),但是模擬的量是非常大的,這樣通過利用大量合理的請求造成資源過載,導(dǎo)致服務(wù)不可用,從而導(dǎo)致系統(tǒng)無法為真正用戶提供服務(wù)。

? DDoS攻擊,基本原理均是基于網(wǎng)絡(luò)協(xié)議來進行的。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • ?(1) 認證與授權(quán) ? (2)Session和cookie ? (3)文件上傳漏洞 ? (4)SQL 注入 ? ...
    社會主義頂梁鹿閱讀 663評論 0 1
  • 一、軟件的安全性測試 軟件安全性測試包括程序、網(wǎng)絡(luò)、數(shù)據(jù)庫安全性測試。根據(jù)系統(tǒng)安全指標(biāo)不同測試策略也不同。 ...
    Root_123閱讀 4,582評論 0 2
  • WEB的安全性測試主要從以下方面考慮: 1.SQL Injection(SQL注入) (1)如何進行SQL注入測試...
    天天向上的小M閱讀 893評論 0 1
  • 從三月份找實習(xí)到現(xiàn)在,面了一些公司,掛了不少,但最終還是拿到小米、百度、阿里、京東、新浪、CVTE、樂視家的研發(fā)崗...
    時芥藍閱讀 42,820評論 11 349
  • 青春的旅途上 我們背起行囊 大聲唱 我們最初的模樣 哪怕會跌倒受傷 也有你陪在身旁 這是最好的時光 我會永遠珍藏 ...
    葉清檸閱讀 233評論 0 0

友情鏈接更多精彩內(nèi)容