1月20日凌晨颜曾,拼多多被曝出現(xiàn)重大Bug,用戶可領(lǐng)100元無門檻券秉剑,有效期一年泛豪,大量用戶涌入“薅羊毛”,用戶通過領(lǐng)取的優(yōu)惠券充值上萬元話費(fèi)侦鹏、囤積數(shù)十萬Q幣诡曙,網(wǎng)傳200億,官方宣稱目前統(tǒng)計(jì)幾千萬略水。
程序猿也慢慢成為一個(gè)高危職業(yè)价卤,200億漏洞的程序猿,你還好嗎渊涝?趁著這個(gè)機(jī)會(huì)和大家普及和分享一下常見的程序漏洞慎璧。
1.SQL注入攻擊:指的是通過構(gòu)建特殊的輸入作為參數(shù)傳入Web應(yīng)用程序,而這些輸入大都是SQL語法里的一些組合跨释,通過執(zhí)行SQL語句進(jìn)而執(zhí)行攻擊者所要的操作胸私,其主要原因是程序沒有細(xì)致地過濾用戶輸入的數(shù)據(jù),致使非法數(shù)據(jù)侵入系統(tǒng)鳖谈。
select * from AUTH_USER t where t.LOG_IN_NAME='' or 1=1 --' and ?t.PASSWORD='gdd‘
解決方案:
PreparedStatement
采用預(yù)編譯語句集岁疼,它內(nèi)置了處理SQL注入的能力,只要使用它的setXXX方法傳值即可
Mybatis:
禁止使用where條件中使用${}傳遞變量缆娃,只能使用#{}捷绒,like的時(shí)候用concat連接 。
2.數(shù)據(jù)夸權(quán)限
有些查看龄恋、修改疙驾、刪除、新增接口通過id郭毕,直接操作它碎,沒有檢查用戶是否有權(quán)限,導(dǎo)致可以通過接口直接修改參數(shù)显押,直接查看扳肛、修改、刪除別的用戶的數(shù)據(jù)乘碑。甚至可以通過寫腳本進(jìn)行遍歷所有的數(shù)據(jù)挖息。
解決方案:
前后端增加簽名設(shè)置,驗(yàn)證簽名兽肤,可以防一些低端用戶套腹。厲害的黑客绪抛,會(huì)通過從網(wǎng)站js或者破解你的app,會(huì)找到你的加密方法电禀,然后寫腳本繞過你的簽名驗(yàn)證幢码。
后端服務(wù)增加權(quán)限判斷,根據(jù)前臺(tái)傳過來的ID尖飞,當(dāng)前登錄用戶是否有權(quán)限對(duì)數(shù)據(jù)進(jìn)行操作症副。如果沒有直接返回或者拋出異常,擁有權(quán)限才繼續(xù)向下執(zhí)行政基。
3.暴力破解
通過腳本代碼贞铣,窮舉密碼進(jìn)行破解用戶密碼
解決方案:
用戶名密碼登錄,可增加圖片驗(yàn)證碼沮明,如果用戶名密碼不匹配辕坝,需要?jiǎng)h除服務(wù)器上的圖片驗(yàn)證碼,重新生成新的圖片驗(yàn)證碼珊擂,發(fā)送給客戶端圣勒。為了用戶體驗(yàn)可以通過用戶登錄錯(cuò)誤次數(shù)來決定是否需要驗(yàn)證圖片驗(yàn)證碼(用戶已經(jīng)錯(cuò)誤此時(shí)可以緩存到redis,錯(cuò)誤次數(shù)可配置在diamond)
手機(jī)驗(yàn)證碼登錄摧扇,可以根據(jù)錯(cuò)誤次數(shù)圣贸,刪除服務(wù)器端的手機(jī)驗(yàn)證碼,如果不刪除扛稽,會(huì)被窮舉破解吁峻。為了節(jié)省成本,可以用戶輸錯(cuò)3次(可靈活配置)之后在张,把服務(wù)器的圖片驗(yàn)證碼用含,防止暴力破解。
4.csrf 攻擊
CSRF跨站點(diǎn)請(qǐng)求偽造(Cross—Site Request Forgery)帮匾,攻擊者盜用了你的身份啄骇,以你的名義發(fā)送惡意請(qǐng)求,對(duì)服務(wù)器來說這個(gè)請(qǐng)求是完全合法的瘟斜,但是卻完成了攻擊者所期望的一個(gè)操作缸夹,比如以你的名義發(fā)送郵件、發(fā)消息螺句,盜取你的賬號(hào)虽惭,添加系統(tǒng)管理員,甚至于購(gòu)買商品蛇尚、虛擬貨幣轉(zhuǎn)賬等芽唇。
解決方案:
驗(yàn)證refer:CsrfFilter,全局控制所有請(qǐng)求取劫,驗(yàn)證refer匆笤,增加白名單和黑名單的控制研侣,防止誤殺。
增加token驗(yàn)證:將token信息存放在服務(wù)器端和cookie中疚膊,但存在缺點(diǎn)义辕,高手能很容易拿到token
5.釣魚網(wǎng)站
釣魚網(wǎng)站通常指?jìng)窝b成其他網(wǎng)站,做的和寓盗,竊取用戶提交的銀行帳號(hào)、密碼等私密信息的網(wǎng)站璧函。
解決方案:
1.查驗(yàn)“可信網(wǎng)站”傀蚌。
通過第三方網(wǎng)站身份誠(chéng)信認(rèn)證辨別網(wǎng)站的真實(shí)性。
2.核對(duì)網(wǎng)站域名
假冒網(wǎng)站一般和真實(shí)網(wǎng)站有細(xì)微區(qū)別蘸吓,有疑問時(shí)要仔細(xì)辨別其不同之處
3.查詢網(wǎng)站備案善炫。
通過ICP備案可以查詢網(wǎng)站的基本情況、網(wǎng)站擁有者的情況库继。
4.比較網(wǎng)站內(nèi)容箩艺。
假冒網(wǎng)站上的字體樣式不一致,并且模糊不清宪萄。
5.安全證書艺谆。
目前大型的電子商務(wù)網(wǎng)站都應(yīng)用了可信證書類產(chǎn)品,這類網(wǎng)站的網(wǎng)址都是“https”開頭的拜英,如果發(fā)現(xiàn)不是“https”開頭的静汤,應(yīng)謹(jǐn)慎對(duì)待。
6.短信轟炸
通過腳本代碼居凶,循環(huán)調(diào)用發(fā)送短信接口虫给,對(duì)用戶進(jìn)行產(chǎn)生了騷擾,同時(shí)增加了短信的費(fèi)用侠碧。
解決方案:
1.發(fā)送短信驗(yàn)證碼之前抹估,增加圖片驗(yàn)證碼,驗(yàn)證碼也很有講究弄兜,很多短信轟炸機(jī)已經(jīng)使用了OCR技術(shù)對(duì)圖片進(jìn)行了識(shí)別药蜻。可以使用邏輯加減法挨队,讓用戶輸入結(jié)果谷暮,防短信轟炸機(jī)效果較好。
2.增加IP的限制盛垦,控制同一個(gè)IP湿弦,可發(fā)送的次數(shù)
3.針對(duì)同一個(gè)手機(jī)號(hào)也做限制,限制一分鐘內(nèi)腾夯,2小時(shí)內(nèi)颊埃,一天內(nèi)發(fā)送次數(shù)(次數(shù)可配置)
7.XSS攻擊
?XSS(Cross Site Scripting)蔬充,即跨站腳本攻擊,是一種常見于web應(yīng)用程序中的計(jì)算機(jī)安全漏洞.XSS通過在用戶端注入惡意的可運(yùn)行腳本班利,若服務(wù)器端對(duì)用戶輸入不進(jìn)行處理饥漫,直接將用戶輸入輸出到瀏覽器,然后瀏覽器將會(huì)執(zhí)行用戶注入的腳本罗标。
解決方案:
1.Filter 過濾腳本
200億的漏洞庸队,淋漓盡致的體現(xiàn)了人性的貪婪。如果這個(gè)世界闯割,多一些白帽子彻消,少一些黑灰產(chǎn),大家都簡(jiǎn)單點(diǎn)宙拉,再簡(jiǎn)單點(diǎn)宾尚,世界才會(huì)變得更美好。200億的漏洞谢澈,遲早有人為此買單煌贴,