sql注入原理
通過(guò)把sql命令插入到web表單遞交或輸入域名或頁(yè)面請(qǐng)求的查詢字符串,最終達(dá)到欺騙服務(wù)器執(zhí)行惡意sql命令
防范
1.永遠(yuǎn)不要信任用戶的輸入肠缨,要對(duì)用戶的輸入進(jìn)行校驗(yàn)获黔,可以通過(guò)正則表達(dá)式碍沐,或限制長(zhǎng)度挺狰,對(duì)單引號(hào)和雙"-"進(jìn)行轉(zhuǎn)換等。
2.永遠(yuǎn)不要使用動(dòng)態(tài)拼裝SQL,可以使用參數(shù)化的SQL或者直接使用存儲(chǔ)過(guò)程進(jìn)行數(shù)據(jù)查詢存取。
3.永遠(yuǎn)不要使用管理員權(quán)限的數(shù)據(jù)庫(kù)連接纤泵,為每個(gè)應(yīng)用,使用單獨(dú)的權(quán)限有限的數(shù)據(jù)庫(kù)連接镜粤。
4.不要把機(jī)密信息明文存放捏题,請(qǐng)加密或者h(yuǎn)ash掉密碼和敏感的信息
xss
xss:跨站腳本(Cross-site Scripting)是一種網(wǎng)站應(yīng)用程序的安全漏洞攻擊,是代碼注入的一種肉渴。它允許惡意用戶將代碼注入到網(wǎng)頁(yè)上公荧,其他用戶在觀看網(wǎng)頁(yè)時(shí)就會(huì)受到影響。這類攻擊通常包含了HTML以及用戶端腳本語(yǔ)言同规。
意思就是比如:攻擊者在論壇中放一個(gè)看似安全的鏈接循狰,騙取用戶點(diǎn)擊后,竊取cookie中的用戶私密信息捻浦;或者攻擊者在論壇中加一個(gè)惡意表單晤揣,當(dāng)用戶提交表單的時(shí)候桥爽,卻把信息傳送到攻擊者的服務(wù)器中朱灿,而不是用戶原本以為的信任站點(diǎn)。
防范
1.首先代碼里對(duì)用戶輸入的地方和變量都需要仔細(xì)檢查長(zhǎng)度和對(duì)”<” , ”>” ,? ”;” , ”’” 等字符做過(guò)濾钠四;其次任何內(nèi)容寫到頁(yè)面之前都必須加以encode盗扒,避免不小心把html tag 弄出來(lái)。這一個(gè)層面做好缀去,至少可以堵住超過(guò)一半的XSS 攻擊侣灶。
2.永遠(yuǎn)不要使用動(dòng)態(tài)拼裝SQL,可以使用參數(shù)化的SQL或者直接使用存儲(chǔ)過(guò)程進(jìn)行數(shù)據(jù)查詢存取缕碎。
3.永遠(yuǎn)不要使用管理員權(quán)限的數(shù)據(jù)庫(kù)連接褥影,為每個(gè)應(yīng)用使用單獨(dú)的權(quán)限有限的數(shù)據(jù)庫(kù)連接。
4.不要把機(jī)密信息明文存放咏雌,請(qǐng)加密或者h(yuǎn)ash掉密碼和敏感的信息
CSRF
跨站請(qǐng)求偽造(英語(yǔ):Cross-site request forgery)凡怎,也被稱為 one-click attack 或者 session riding,通成薅叮縮寫為 CSRF 或者 XSRF统倒, 是一種挾制用戶在當(dāng)前已登錄的Web應(yīng)用程序上執(zhí)行非本意的操作的攻擊方法。
就是說(shuō)冒充用戶發(fā)起請(qǐng)求(在用戶不知情的情況下),完成一些違背用戶意愿的請(qǐng)求(如惡意發(fā)帖氛雪,刪帖房匆,改密碼,發(fā)郵件等)。只要是偽造用戶發(fā)起的請(qǐng)求浴鸿,都可成為CSRF攻擊井氢。
防范:
服務(wù)端的CSRF方式方法很多樣,但總的思想都是一致的岳链,就是在客戶端頁(yè)面增加偽隨機(jī)數(shù)毙沾。通過(guò)驗(yàn)證碼的方法
XSS與CSRF的區(qū)別
1.XSS是獲取信息,不需要提前知道其他用戶頁(yè)面的代碼和數(shù)據(jù)包宠页。CSRF是代替用戶完成指定的動(dòng)作左胞,需要知道其他用戶頁(yè)面的代碼和數(shù)據(jù)包。
2.要完成一次CSRF攻擊举户,受害者必須依次完成兩個(gè)步驟:a.登錄受信任網(wǎng)站A烤宙,并在本地生成Cookie。b.在不登出A的情況下俭嘁,訪問(wèn)危險(xiǎn)網(wǎng)站B躺枕。