SQL注入
提交含有SQL操作語句的信息給后端,后端如果沒有做好過濾就執(zhí)行該語句,攻擊者自然可以隨意操縱該站點的數(shù)據(jù)庫。
XSS(cross-site scripting跨域腳本攻擊)
“Reflected XSS”——基于反射的XSS攻擊:通過qq群或者郵件之類的信息,讓用戶進(jìn)行點擊,url中有js腳本,然后通過腳本,將用戶的cookie信息傳到預(yù)先設(shè)置好的服務(wù)器。
“DOM-based or local XSS”——基于DOM或本地的XSS攻擊。
免費wifi的網(wǎng)關(guān)會往你訪問的任何頁面插入一段腳本,從而植入懸浮廣告(當(dāng)然你可以關(guān)閉它),這貌似沒什么,但如果插入的腳本是獲取你敏感數(shù)據(jù)的惡意腳本那就不一樣了。像這種直接存在于頁面,無須經(jīng)過服務(wù)器返回腳本處理就直接跨域發(fā)送用戶信息的行為就是基于本地的XSS攻擊。
“Stored XSS”——基于存儲的XSS攻擊
它是通過貼吧啊博客園啊等地方來發(fā)表帶有惡意跨域腳本的帖子或文章,從而把惡意腳本存儲在里面,每個訪問該帖子/文章的人就會中招。
會話劫持
這個比喻很有意思,我們常規(guī)訪問一個http網(wǎng)站時是與其服務(wù)器建立了一次HTTP會話。假設(shè)你宿舍樓的“朋友”都跟你處于同一個子網(wǎng)上,其中有人想偽裝成你來劫持你的HTTP會話,那么服務(wù)器會把菜,哦不,是信息返回給那個人嗎?
答案是肯定的,因為HTTP會話并不安全。它在經(jīng)過TCP/IP協(xié)議封裝傳輸數(shù)據(jù)時,在傳輸?shù)臄?shù)據(jù)的每一個字節(jié)中插入一個32位的序列號碼,這個序列號用來保持跟蹤數(shù)據(jù)和提供可靠性(序列號是依循數(shù)據(jù)順序逐步遞增的)。第三方攻擊者可以通過嗅探的方式來獲取用戶與服務(wù)器通訊中的報文信息,如果他能猜測到數(shù)據(jù)中的序列號,那便能把合法的用戶斷開,偽裝成合法用戶讓自己控制后續(xù)的通話。
對于會話劫持的預(yù)防,可以走SSH協(xié)議、增強(qiáng)網(wǎng)絡(luò)安全系統(tǒng)健壯性,也可以使用無序的UUID來替代通訊中的序列號碼(而非逐步遞增)。
CSRF(cross-site request forgery),翻譯為跨站請求偽造
img、script、iframe標(biāo)簽都是不受同源策略限制的,假設(shè)你使用的郵箱很直白地給用戶即時顯示這張圖片,而該用戶又剛好登錄了book.com且沒有關(guān)閉瀏覽器,那么src里的連接就會立刻訪問book.com/pay頁面,并按照已通過身份驗證的情況來處理,從而做了購書的操作。