摘要:到目前為止,表單是最常見(jiàn)的攻擊媒介可能發(fā)生攻擊的地方。這些攻擊的影響可能從一個(gè)小麻煩到一個(gè)重大的安全風(fēng)險(xiǎn)。為了防止這些攻擊,您應(yīng)該始終檢查用戶發(fā)送給服務(wù)器的數(shù)據(jù)如果需要顯示,盡量不要顯示用戶提供的內(nèi)容。
action屬性
這個(gè)屬性定義了發(fā)送數(shù)據(jù)要去的位置。它的值必須是一個(gè)有效的URL。如果沒(méi)有提供此屬性,則數(shù)據(jù)將 被發(fā)送到包含表單的頁(yè)面的URL
method屬性
該屬性定義了如何發(fā)送數(shù)據(jù)。HTTP協(xié)議提供了幾種執(zhí)行請(qǐng)求的方法;HTML表單數(shù)據(jù)可以通過(guò)許多不同的數(shù)據(jù)傳輸,其中最常見(jiàn)的是GET方法和POST方法。
每次向服務(wù)器發(fā)送數(shù)據(jù)時(shí),都需要考慮安全性。到目前為止,HTML表單是最常見(jiàn)的攻擊媒介(可能發(fā)生攻擊的地方)。這些問(wèn)題從來(lái)都不是來(lái)自HTML表單本身,它們來(lái)自于服務(wù)器如何處理數(shù)據(jù)。
跨站腳本(XSS)和跨站點(diǎn)請(qǐng)求偽造(CSRF)是常見(jiàn)的攻擊類型,它們發(fā)生在當(dāng)您將用戶發(fā)送的數(shù)據(jù)顯示給用戶或另一個(gè)XSS允許攻擊者將客戶端腳本注入到其他用戶查看的Web頁(yè)面中。攻擊者可以使用跨站點(diǎn)腳本攻擊的漏洞來(lái)繞過(guò)諸如同源策略之類的訪問(wèn)控制。這些攻擊的影響可能從一個(gè)小麻煩到一個(gè)重大的安全風(fēng)險(xiǎn)。
CSRF攻擊類似于XSS攻擊,因?yàn)樗鼈円韵嗤姆绞焦簟騑eb頁(yè)面中注入客戶端腳本——但它們的目標(biāo)是不同的。CSRF攻擊者試圖將特權(quán)升級(jí)到特權(quán)用戶(比如站點(diǎn)管理員)的權(quán)限,以執(zhí)行他們不應(yīng)該執(zhí)行的操作(例如,將數(shù)據(jù)發(fā)送給一個(gè)不受信任的用戶)。
XSS攻擊利用用戶對(duì)web站點(diǎn)的信任,而CSRF攻擊則利用網(wǎng)站為其用戶提供的信任。
為了防止這些攻擊,您應(yīng)該始終檢查用戶發(fā)送給服務(wù)器的數(shù)據(jù)(如果需要顯示),盡量不要顯示用戶提供的HTML內(nèi)容。相反,您應(yīng)該處理用戶提供的數(shù)據(jù),這樣您就不會(huì)逐字地顯示它。當(dāng)今市場(chǎng)上幾乎所有的框架都實(shí)現(xiàn)了一個(gè)最小的過(guò)濾器,它可以從任何用戶發(fā)送的數(shù)據(jù)中刪除HTML