xss攻擊圃庭、越權(quán)锄奢、跨站請(qǐng)求偽造失晴、信息泄密等代碼安全問(wèn)題簡(jiǎn)單匯總

1、路徑遍歷

奇安信安全漏洞掃描掃出來(lái)的結(jié)果,個(gè)人感覺(jué)不是很智能式塌。
接收文件的接口甘穿,不允許調(diào)用創(chuàng)建文件或刪除文件的方法。
接收文件時(shí)可以用MultipartFile接收拆又,然后不再創(chuàng)建臨時(shí)文件儒旬,盡量使用I/O流進(jìn)行處理。

2帖族、xss攻擊

對(duì)傳入的參數(shù)進(jìn)行xss過(guò)濾栈源,對(duì)特殊字符進(jìn)行轉(zhuǎn)義處理。

3竖般、sql注入

輸入具有風(fēng)險(xiǎn)的查詢條件甚垦。${} 和 #{}的主要區(qū)別是#{}會(huì)在參數(shù)前后加入"",如參數(shù)是 keyword,拼接成sql語(yǔ)句是 "keyword"艰亮,而${}會(huì)原封不動(dòng)地把原來(lái)的字段拼接到sql語(yǔ)句上闭翩。

4、訪問(wèn)權(quán)限修飾符控制

敏感的訪問(wèn)權(quán)限修飾符迄埃,不能直接用true疗韵、false等關(guān)鍵字直接開(kāi)啟或關(guān)閉,以防被人惡意掃描到侄非,應(yīng)該用一些具有訪問(wèn)權(quán)限的類間接控制蕉汪。

5、使用DNS名稱作為安全性的依據(jù)

不能使用DNS名稱進(jìn)行安全驗(yàn)證逞怨,一個(gè)IP地址可以對(duì)應(yīng)多個(gè)DNS名稱肤无,甚至可以偽造DNS名稱,通過(guò)DNS名稱判斷訪問(wèn)來(lái)源不準(zhǔn)確骇钦。


6宛渐、不安全的框架綁定

對(duì)傳入接口的參數(shù)應(yīng)該進(jìn)行過(guò)濾,比如下面的代碼眯搭,創(chuàng)建一個(gè)新用戶窥翩,如果多傳一個(gè)admin=true,就變成創(chuàng)建一個(gè)管理員了鳞仙。
應(yīng)該對(duì)傳進(jìn)來(lái)參數(shù)使用VO進(jìn)行封裝寇蚊,避免多傳參數(shù)額外的參數(shù)。
同理棍好,響應(yīng)給前端的字段也應(yīng)該使用DTO封裝仗岸,避免爆暴露所有字段名稱。
反面例子:用戶登錄成功后將用戶所有信息借笙、字段響應(yīng)回去扒怖。


7、密碼管理:不安全的隨機(jī)數(shù)

Random 類并不是一個(gè)線程安全的類业稼,在并發(fā)量大的時(shí)候有可能會(huì)產(chǎn)生死循環(huán)盗痒。后來(lái)jdk修復(fù)了這個(gè)bug,推出了線程安全的SecureRandom類低散,創(chuàng)建隨機(jī)數(shù)應(yīng)該使用安全的 SecureRandom 類俯邓。


8、密碼管理:硬編碼密碼

對(duì)密碼不能直接在代碼中賦值熔号,應(yīng)該從配置文件中獲取經(jīng)過(guò)加密的密碼值稽鞭。并且盡量不使用password等信息敏感字作為字段名。


9引镊、修改密碼時(shí)朦蕴,根據(jù)傳進(jìn)來(lái)的id修改對(duì)應(yīng)用的id

當(dāng)前用戶的id不能直接暴露出去吃嘿,應(yīng)該通過(guò)后端從session或者redis中獲取。對(duì)當(dāng)前用戶的操作都不能通過(guò)傳進(jìn)來(lái)的id進(jìn)行處理梦重。
····

@SysLog(name = "更改密碼")
@PostMapping("/changePass")
@ApiImplicitParams({
        @ApiImplicitParam(name = "id", value = "用戶id", required = true),
        @ApiImplicitParam(name = "newPass", value = "新密碼", required = true),
        @ApiImplicitParam(name = "oldPass", value = "舊密碼", required = true)
})
@ResponseBody
public MResponse changePass(@RequestParam("id") String id,
                            @RequestParam("oldPass") String oldPass,
                            @RequestParam("newPass") String newPass) {

····

10兑燥、登錄時(shí),發(fā)短信驗(yàn)證碼接口和校驗(yàn)密碼接口分開(kāi)成兩個(gè)琴拧,致使可以繞過(guò)手機(jī)號(hào)碼

先訪問(wèn)驗(yàn)證密碼接口降瞳,驗(yàn)證成功后返回用戶手機(jī)號(hào)碼,再攜帶獲取的手機(jī)號(hào)碼訪問(wèn)發(fā)送短信有驗(yàn)證碼的接口蚓胸。用戶可以在驗(yàn)證密碼成功后挣饥,另外發(fā)送一個(gè)手機(jī)號(hào)碼訪問(wèn)發(fā)短信驗(yàn)證碼的接口,從而繞過(guò)給賬號(hào)用戶本人發(fā)送短信這個(gè)步驟沛膳。
應(yīng)該在一個(gè)接口里校驗(yàn)密碼成功后立馬發(fā)送短信扔枫。


11、登錄時(shí)锹安,驗(yàn)證短信驗(yàn)證碼和執(zhí)行登錄接口分開(kāi)成兩個(gè)短荐,致使可以繞過(guò)驗(yàn)證短信驗(yàn)證碼

同上面,先訪問(wèn)驗(yàn)證短信驗(yàn)證碼的接口叹哭,訪問(wèn)通過(guò)后忍宋,再訪問(wèn)執(zhí)行登錄的接口。用戶可以繞過(guò)短信驗(yàn)證碼驗(yàn)證风罩,直接訪問(wèn)執(zhí)行登錄的接口糠排。
應(yīng)該在同一個(gè)接口里面完成兩個(gè)步驟,驗(yàn)證短信后立馬執(zhí)行登錄超升。


12入宦、敏感信息暴露,信息泄密

  • 用戶登錄成功后室琢,將所有用戶信息返回給前端乾闰,前端將所有用戶信息保存在cookie中。
  • 查詢用戶列表研乒,將用戶所有信息全部查詢響應(yīng)回去汹忠。


13淋硝、橫向越權(quán)漏洞

橫向越權(quán):攻擊者嘗試訪問(wèn)與他擁有相同權(quán)限的其他用戶的資源雹熬。
原因:查詢、編輯谣膳、刪除等操作的時(shí)候是需要傳遞響應(yīng)數(shù)據(jù)id的竿报,傳入不是當(dāng)前用戶管理的id,造成橫向越權(quán)继谚。
對(duì)策:對(duì)目標(biāo)數(shù)據(jù)進(jìn)行判斷烈菌,判斷是否為當(dāng)前用戶有權(quán)限操作的數(shù)據(jù)。


14、縱向越權(quán)漏洞

縱向越權(quán):攻擊者嘗試訪問(wèn)不屬于他自己權(quán)限的資源
原因:隱藏菜單芽世,按鈕挚赊,從而限制用戶訪問(wèn)某些接口的權(quán)限,但是用戶可以不使用菜單济瓢、按鈕荠割,而直接在地址欄訪問(wèn)接口,造成縱向越權(quán)旺矾。
對(duì)策:給每個(gè)接口蔑鹦,每個(gè)用戶建立數(shù)據(jù)訪問(wèn)權(quán)限,用戶須擁有訪問(wèn)該接口權(quán)限箕宙,才允許訪問(wèn)嚎朽。

15、跨站請(qǐng)求偽造

攻擊者偽造一條刪除數(shù)據(jù)的鏈接柬帕,引誘正常使用的管理員點(diǎn)擊哟忍。管理員點(diǎn)擊之后直接訪問(wèn)刪除數(shù)據(jù)的鏈接,造成數(shù)據(jù)丟失陷寝。
對(duì)策:判斷鏈接是否是從我們的靜態(tài)頁(yè)面來(lái)訪問(wèn)過(guò)來(lái)魁索,如果不是,則攔截盼铁。
referer的作用:告訴服務(wù)器這次請(qǐng)求是從哪個(gè)頁(yè)面鏈接過(guò)來(lái)的粗蔚,如果是瀏覽器直接訪問(wèn),則為空饶火。


最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末鹏控,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子肤寝,更是在濱河造成了極大的恐慌当辐,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,743評(píng)論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件鲤看,死亡現(xiàn)場(chǎng)離奇詭異缘揪,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)义桂,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,296評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門(mén)找筝,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人慷吊,你說(shuō)我怎么就攤上這事袖裕。” “怎么了溉瓶?”我有些...
    開(kāi)封第一講書(shū)人閱讀 157,285評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵急鳄,是天一觀的道長(zhǎng)谤民。 經(jīng)常有香客問(wèn)我,道長(zhǎng)疾宏,這世上最難降的妖魔是什么张足? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 56,485評(píng)論 1 283
  • 正文 為了忘掉前任,我火速辦了婚禮坎藐,結(jié)果婚禮上兢榨,老公的妹妹穿的比我還像新娘。我一直安慰自己顺饮,他們只是感情好吵聪,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,581評(píng)論 6 386
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著兼雄,像睡著了一般吟逝。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上赦肋,一...
    開(kāi)封第一講書(shū)人閱讀 49,821評(píng)論 1 290
  • 那天块攒,我揣著相機(jī)與錄音,去河邊找鬼佃乘。 笑死囱井,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的趣避。 我是一名探鬼主播庞呕,決...
    沈念sama閱讀 38,960評(píng)論 3 408
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼程帕!你這毒婦竟也來(lái)了住练?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 37,719評(píng)論 0 266
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤愁拭,失蹤者是張志新(化名)和其女友劉穎讲逛,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體岭埠,經(jīng)...
    沈念sama閱讀 44,186評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡盏混,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,516評(píng)論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了惜论。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片许赃。...
    茶點(diǎn)故事閱讀 38,650評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖来涨,靈堂內(nèi)的尸體忽然破棺而出图焰,到底是詐尸還是另有隱情,我是刑警寧澤蹦掐,帶...
    沈念sama閱讀 34,329評(píng)論 4 330
  • 正文 年R本政府宣布技羔,位于F島的核電站,受9級(jí)特大地震影響卧抗,放射性物質(zhì)發(fā)生泄漏藤滥。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,936評(píng)論 3 313
  • 文/蒙蒙 一社裆、第九天 我趴在偏房一處隱蔽的房頂上張望拙绊。 院中可真熱鬧,春花似錦泳秀、人聲如沸标沪。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,757評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)金句。三九已至,卻和暖如春吕嘀,著一層夾襖步出監(jiān)牢的瞬間违寞,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 31,991評(píng)論 1 266
  • 我被黑心中介騙來(lái)泰國(guó)打工偶房, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留趁曼,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 46,370評(píng)論 2 360
  • 正文 我出身青樓棕洋,卻偏偏與公主長(zhǎng)得像挡闰,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子掰盘,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,527評(píng)論 2 349