后端技术:Web安全常见漏洞和修复建议,值得收藏!
一、SQL語句注入
1、請(qǐng)求服務(wù)器端要對(duì)用戶輸入的數(shù)據(jù)進(jìn)行校驗(yàn)。
2、在處理輸入之前,驗(yàn)證所有客戶端請(qǐng)求的數(shù)據(jù),包括請(qǐng)求參數(shù)、URL和HTTP頭的內(nèi)容。
3、驗(yàn)證輸入數(shù)據(jù)的類型、長度和數(shù)據(jù)格式是否正確。
4、使用白名單驗(yàn)證允許的輸入字符而不是直接使用黑名單。
5、在敏感字符輸入后要進(jìn)行轉(zhuǎn)義或編碼。
6、明確所有輸入正確的字符集。
7、避免動(dòng)態(tài)拼接的SQL語句,如果使用要對(duì)特殊字符進(jìn)行語法轉(zhuǎn)義。
8、給用戶設(shè)置滿足正常使用最小權(quán)限
二、XPath注入
1、服務(wù)器端開始處理用戶提交的請(qǐng)求數(shù)據(jù)之前,對(duì)輸入的數(shù)據(jù)進(jìn)行驗(yàn)證,驗(yàn)證每一個(gè)參數(shù)的類型、長度和格式。
2、對(duì)于系統(tǒng)出現(xiàn)的錯(cuò)誤信息,采用IE錯(cuò)誤編碼信息替換,屏蔽操作系統(tǒng)的出錯(cuò)信息,這樣可以向攻擊者提供更少的信息進(jìn)行下一步注入攻擊。
3、及時(shí)檢查是否有特殊字符,如果有特殊字符 ,就轉(zhuǎn)義特殊字符或者替換。比如:單引號(hào)、雙音,都進(jìn)行轉(zhuǎn)義或者替換。
4、XPath查詢參數(shù)化,編譯構(gòu)建XPath表達(dá)式,將數(shù)據(jù)輸入以變量形式傳遞。
5、針對(duì)敏感信息如密碼之類,建議使用哈希值較長的算法處理。
三、操作系統(tǒng)命令注入
1、客戶端、服務(wù)器端都要進(jìn)行命令過濾。
2、針對(duì)相應(yīng)的用戶給最小的運(yùn)行權(quán)限,最好可以指定到具體的目錄、明確使用的命令。
3、程序執(zhí)行出錯(cuò)時(shí),不要顯示與內(nèi)部實(shí)現(xiàn)相關(guān)的異常報(bào)錯(cuò)細(xì)節(jié)。
4、針對(duì)運(yùn)行有限的命令、建議使用白名單方式過濾。
5、針對(duì)需要用戶運(yùn)行命令的請(qǐng)求,盡可能減小需要從外部輸入的數(shù)據(jù)。比如:如果傳參數(shù)的地方不要傳命令行。
6、有下載文件,給文件分配一個(gè)ID號(hào)來訪問文件,避免使用文件名來訪問。
四、JSON數(shù)據(jù)注入
1、特殊字符前加反斜杠()進(jìn)行轉(zhuǎn)義
2、使用Javascript編碼
3、使用HTML編碼
五、XSS
1、在輸入過濾,在顯示的地方做輸出編碼。
2、使用一個(gè)統(tǒng)一的規(guī)則做輸出編碼
3、富文本編輯器,要使用白名單控制輸入。
4、使用HTTPOnly標(biāo)志
六、CSRF
1、針對(duì)重要功能增加確認(rèn)操作或重新認(rèn)證,比如涉及支付、轉(zhuǎn)賬、修改手機(jī)號(hào)碼等涉及安全隱私的信息需要加驗(yàn)證碼的方式進(jìn)行確認(rèn)
2、每個(gè)會(huì)話中使用強(qiáng)隨機(jī)令牌(token)來保護(hù)。
3、檢驗(yàn)HTTP Referer是否合法
七、會(huì)話攻擊
1、采用強(qiáng)算法生成會(huì)話ID,會(huì)話ID必須具有隨機(jī)性和不可預(yù)測(cè)性,長度至少為128位。
2、設(shè)定會(huì)話過期時(shí)間,如:在一定時(shí)間內(nèi)沒有與應(yīng)用交互,設(shè)定在登錄特定時(shí)間內(nèi)要重新登錄系統(tǒng)。
3、設(shè)置好Cookie的兩個(gè)屬性:secure和HttpOnly可以用來防御嗅探和阻止JS操作。
八、身份認(rèn)證
1、用戶注冊(cè)時(shí)強(qiáng)制用戶輸入密碼強(qiáng)度較高的密碼。
2、用戶登錄系統(tǒng),要進(jìn)行次數(shù)限制,防止非法暴力破解用戶賬戶信息,比如登錄三次失敗后,要阻止當(dāng)前用戶半個(gè)小時(shí)內(nèi)不能再次嘗試登錄。
3、使用HTTPS請(qǐng)求傳輸身份驗(yàn)證和密碼、身份證、手機(jī)號(hào)碼,郵箱等數(shù)據(jù)。
4、當(dāng)用戶密碼重置時(shí),以短信、或者郵件的方式通知用戶
5、用戶賬號(hào)上次使用信息在下一次成功登陸時(shí)向用戶提供登錄日志記錄。
6、在執(zhí)行關(guān)鍵操作(如:修改登錄密碼、支付密碼、郵箱、手機(jī)號(hào)碼等)使用人臉識(shí)別等方式進(jìn)行身份驗(yàn)證。
九、Tomcat安全配置
1、Tomcat以沒有特權(quán)的用戶賬戶和組運(yùn)行,沒有執(zhí)行交互shell命令權(quán)限。
2、Tomcat運(yùn)行的版本必須打了所有安全補(bǔ)丁的版本。
3、Tomcat默認(rèn)的例子相關(guān)路徑和文件必須刪除。
4、Tomcat管理員默認(rèn)密碼必須被修改成復(fù)雜密碼。
5、頁面出現(xiàn)信息不能顯示Tomcat的版本信息和系統(tǒng)信息。
6、Tomcat配置文件啟用安全的http方法,如:GET POST。
7、應(yīng)用程序和管理程序建議使用不同的端口。
8、項(xiàng)目部署前刪除測(cè)試代碼文件。
9、刪除無用的文件如:備份文件、臨時(shí)文件等。
10、配置文件中不要出現(xiàn)使用默認(rèn)用戶和密碼的情況。
11、不要在robot.txt中泄露目錄結(jié)構(gòu)。
十、Apache安全配置
1、選擇漏洞較少的apache版本。
2、隱藏Apache版本號(hào)。
3、刪除Apache歡迎頁面。
4、配置只允許訪問Apache的Web目錄
5、應(yīng)用程序和管理程序使用不同的端口。
6、管理控制臺(tái)必須使用SSL協(xié)議。
7、部署前刪除測(cè)試代碼文件。
8、刪除無用的文件如:備份文件、臨時(shí)文件等。
9、配置文件中沒有默認(rèn)用戶和密碼。
10、不要在robot.txt中泄露目錄結(jié)構(gòu)。
十一、數(shù)據(jù)庫通用配置
1、線上環(huán)境不要使用數(shù)據(jù)庫默認(rèn)用戶名和密碼。
2、數(shù)據(jù)庫用戶的密碼要符合一定的復(fù)雜度。
3、訪問數(shù)據(jù)庫的用戶要賦予所需要的最小權(quán)限。
十二、繞過認(rèn)證
1、對(duì)登錄后可以訪問的URL做是否登錄檢查,如果沒有登錄過,應(yīng)該跳轉(zhuǎn)到系統(tǒng)的登錄頁面。
2、對(duì)于敏感信息的請(qǐng)求如登錄時(shí)、修改密碼等請(qǐng)求一定要用HTTPS協(xié)議。
十三、文件上傳
1、上傳的路徑要限制在固定路徑下。
2、上傳文件路徑只給只讀和寫權(quán)限,不需要執(zhí)行權(quán)限。
3、服務(wù)端文件類型要使用白名單過濾,后臺(tái)不應(yīng)有添加擴(kuò)展名類型功能;通過配置文件調(diào)整支持上傳的文件類型。
4、文件上傳使用自己的命名規(guī)則重新命名上傳的文件。
IT技術(shù)分享社區(qū)
個(gè)人博客網(wǎng)站:https://programmerblog.xyz
文章推薦程序員效率:畫流程圖常用的工具程序員效率:整理常用的在線筆記軟件遠(yuǎn)程辦公:常用的遠(yuǎn)程協(xié)助軟件,你都知道嗎?51單片機(jī)程序下載、ISP及串口基礎(chǔ)知識(shí)硬件:斷路器、接觸器、繼電器基礎(chǔ)知識(shí)
總結(jié)
以上是生活随笔為你收集整理的后端技术:Web安全常见漏洞和修复建议,值得收藏!的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Wifidog 认证
- 下一篇: 手游服务器验证,手游登录流程