日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

几种常见的Web攻击

發(fā)布時(shí)間:2024/4/11 编程问答 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 几种常见的Web攻击 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

幾種常見(jiàn)的Web攻擊

文章目錄

  • 幾種常見(jiàn)的Web攻擊
    • 一、DoS攻擊
      • 1.SYN洪水攻擊
      • 2.IP欺騙
      • 3.Land攻擊
      • 4.針對(duì)DoS攻擊的防御
    • 二、CSRF攻擊
      • 1. CSRF攻擊的發(fā)生有三個(gè)必要條件:
      • 2.幾種防護(hù)方法:
    • 三、XSS漏洞攻擊
      • 1.非持久型XSS漏洞
      • 2.持久型XSS漏洞
    • 四、SQL注入
      • 1.SQL注入的危害
      • 2.SQL注入的方式
      • 3.防止SQL注入的解決方案

一、DoS攻擊

  • DoS(Denial of Service),拒絕服務(wù),顧名思義這種攻擊是為了讓服務(wù)器無(wú)法提供正常服務(wù),最常見(jiàn)的DoS攻擊是網(wǎng)絡(luò)帶寬攻擊和連通性攻擊。
  • 帶寬攻擊指以極大的通信量沖擊網(wǎng)絡(luò),使得所有可用網(wǎng)絡(luò)資源都被消耗殆盡,最后導(dǎo)致合法的用戶請(qǐng)求無(wú)法通過(guò)。
  • 連通性攻擊指用大量的連接請(qǐng)求沖擊計(jì)算機(jī),使得所有可用的操作系統(tǒng)資源都被消耗殆盡,最終計(jì)算機(jī)無(wú)法再處理合法用戶的請(qǐng)求。
  • 可以看出來(lái),DoS攻擊本身也受網(wǎng)絡(luò)規(guī)模和網(wǎng)絡(luò)速度的限制,單個(gè)計(jì)算機(jī)沒(méi)辦法做到攻破一臺(tái)服務(wù)器,所以DoS攻擊者開(kāi)發(fā)了分布式攻擊DDoS(Distributed Denial of Service),集合許多計(jì)算機(jī)的帶寬來(lái)同時(shí)對(duì)一臺(tái)服務(wù)器發(fā)動(dòng)攻擊。

下面我們來(lái)看三種典型的DoS攻擊:SYN洪水攻擊、IP欺騙和Land攻擊。

1.SYN洪水攻擊

  • SYN洪水攻擊是利用TCP協(xié)議的缺陷,通過(guò)發(fā)送大量的半連接請(qǐng)求消耗資源,造成網(wǎng)絡(luò)擁塞甚至宕機(jī)以達(dá)到攻擊者不可告人的秘密。
  • 我們都知道標(biāo)準(zhǔn)的TCP連接需要經(jīng)過(guò)三次握手,首先是客戶端發(fā)送SYN,服務(wù)端收到后發(fā)送ACK-SYN,客戶端收到后再回復(fù)ACK連接建立成功。
  • 黑客針對(duì)TCP協(xié)議棧在兩臺(tái)主機(jī)間初始化連接握手的過(guò)程進(jìn)行攻擊,黑客通過(guò)包裝第三次握手的ACK包使得服務(wù)端不能收到客正確的戶端ACK包。
  • 而由于TCP協(xié)議具有超時(shí)重傳機(jī)制,服務(wù)端會(huì)一直重傳直到超時(shí)。這些虛假連接會(huì)一直占用緩沖區(qū),正常的請(qǐng)求被丟棄,引起嚴(yán)重的網(wǎng)絡(luò)阻塞甚至系統(tǒng)癱瘓。

2.IP欺騙

  • 這種攻擊同樣是利用TCP協(xié)議棧的漏洞,我們知道TCP協(xié)議有一個(gè)RST位用于連接出錯(cuò)時(shí)的復(fù)位。
  • 這種攻擊利用IP欺騙,使得服務(wù)器將合法的用戶連接復(fù)位,影響正常用戶的使用。
  • 比如說(shuō)現(xiàn)在有一個(gè)合法連接(172.111.222.123),攻擊者構(gòu)造一個(gè)TCP數(shù)據(jù)報(bào),偽裝自己的IP是172.111.222.123,并向服務(wù)器發(fā)送一個(gè)帶RST位的數(shù)據(jù)報(bào)。
  • 服務(wù)器接收到后會(huì)認(rèn)為該連接發(fā)生錯(cuò)誤,將該連接從緩沖區(qū)中移除
  • 所以正常用戶只能重新發(fā)起連接。

3.Land攻擊

  • 進(jìn)行Land攻擊時(shí),黑客特別打造一個(gè)源地址和目標(biāo)地址都被設(shè)置成某一個(gè)服務(wù)器的SYN包,此舉將導(dǎo)致接受服務(wù)器向它自己的地址發(fā)送SYN-ACK消息,結(jié)果這個(gè)地址又發(fā)回ACK消息并創(chuàng)建一個(gè)空連接,每一個(gè)這樣的連接都將保留直到超時(shí)。大量的連接將嚴(yán)重影響服務(wù)器性能。

4.針對(duì)DoS攻擊的防御

那么我們面對(duì)DoS攻擊是否是束手無(wú)策呢?當(dāng)然不是,我們可以做以下防范:

  • 縮短SYN超時(shí)時(shí)間,以減少緩沖區(qū)中保留的半連接個(gè)數(shù)
  • 限制同時(shí)打開(kāi)的半連接個(gè)數(shù),當(dāng)半連接個(gè)數(shù)已經(jīng)達(dá)到上限時(shí),后面未成功的TCP連接將被丟棄而不會(huì)保存在緩沖區(qū)中。
  • 設(shè)置SYN Cookie,就是給每一個(gè)請(qǐng)求連接的IP地址分配一個(gè)Cookie,如果短時(shí)間內(nèi)連續(xù)受到某個(gè)IP的重復(fù)SYN報(bào)文,就認(rèn)定是受到了攻擊,以后從這個(gè)IP地址來(lái)的包會(huì)被一概丟棄。
  • 一般來(lái)說(shuō),第三種方法在防范該類問(wèn)題上表現(xiàn)更佳。
  • 同時(shí)可以在Web服務(wù)器端采用分布式組網(wǎng)、負(fù)載均衡、提升系統(tǒng)容量等可靠性措施,增強(qiáng)總體服務(wù)能力

二、CSRF攻擊

CSRF(Cross Site Request Forgery)攻擊,即跨站請(qǐng)求偽造,是一種常見(jiàn)的Web攻擊。

  • 攻擊者可以盜用我們的登陸信息,以我們的身份模擬發(fā)送各種請(qǐng)求。
  • 例如:我們正常打開(kāi)一個(gè)網(wǎng)站,輸入賬號(hào)密碼登陸,此時(shí)服務(wù)器會(huì)返回一個(gè)cookie,瀏覽器將其保存在本地來(lái)識(shí)別身份信息。
  • 這時(shí)如果我們不小心打開(kāi)了一個(gè)釣魚(yú)網(wǎng)站,這個(gè)釣魚(yú)網(wǎng)站就可以帶著cookie冒充我們?yōu)樗麨椤?/li>
  • 歸根結(jié)底是源于Web的隱式身份驗(yàn)證,Web的身份驗(yàn)證機(jī)制雖然可以保證一個(gè)請(qǐng)求是來(lái)自于某個(gè)用戶的瀏覽器,但卻無(wú)法保證該請(qǐng)求是用戶批準(zhǔn)發(fā)送的。

1. CSRF攻擊的發(fā)生有三個(gè)必要條件:

  • 已經(jīng)登錄一個(gè)站點(diǎn),并在本地保存下cookie。
  • 在沒(méi)有退出剛剛站點(diǎn)的情況下,打開(kāi)了某第三方釣魚(yú)網(wǎng)站或網(wǎng)站本身存在問(wèn)題。
  • 原站點(diǎn)沒(méi)有CSRF防護(hù)

前兩個(gè)條件我們很難完全杜絕,所以為了保證安全,網(wǎng)站必須有必要的CSRF防護(hù)機(jī)制。

2.幾種防護(hù)方法:

我們已經(jīng)知道CSRF攻擊的原理是偽造用戶請(qǐng)求,所以我們防護(hù)的時(shí)候就要從這里出發(fā),試想如果我們的請(qǐng)求里有黑客偽造不出來(lái)的東西那就可以杜絕這種攻擊方式了。

  • 對(duì)于POST請(qǐng)求使用驗(yàn)證碼,這個(gè)方案可以完全杜絕CSRF攻擊,但驗(yàn)證碼過(guò)多會(huì)使用戶體驗(yàn)很差,所以可以對(duì)敏感操作加驗(yàn)證碼。
  • 非GET請(qǐng)求中添加token,當(dāng)客戶端請(qǐng)求頁(yè)面,服務(wù)器渲染頁(yè)面時(shí)給每個(gè)表單生成一個(gè)隨機(jī)數(shù)token,并且將token放置到session當(dāng)中,然后將token發(fā)給客戶端(一般通過(guò)構(gòu)造hidden表單)。下次客戶端提交請(qǐng)求時(shí),token會(huì)隨著表單一起提交到服務(wù)器端。接收到請(qǐng)求后,服務(wù)器端會(huì)對(duì)token值進(jìn)行驗(yàn)證,判斷是否和session中的token值相等,如果不相等則拒絕訪問(wèn)。

CSRF的防御工作確實(shí)會(huì)在正常業(yè)務(wù)邏輯的基礎(chǔ)上帶來(lái)很多額外的開(kāi)發(fā)量,但是這種工作量是值得的,畢竟用戶隱私以及財(cái)產(chǎn)安全是產(chǎn)品最基礎(chǔ)的根本。

三、XSS漏洞攻擊

XSS(Cross Site Scripting)跨站腳本攻擊,XSS的原理是黑客向Web頁(yè)面里插入惡意可執(zhí)行網(wǎng)頁(yè)腳本代碼,當(dāng)用戶瀏覽該頁(yè)之時(shí),嵌入其中Web里面的腳本代碼會(huì)被執(zhí)行,從而可以達(dá)到黑客盜取用戶信息或其他侵犯用戶安全隱私的目的。

XSS漏洞主要分為持久型XSS漏洞和非持久性XSS漏洞。

1.非持久型XSS漏洞

  • 非持久性XSS漏洞主要有以下幾個(gè)特點(diǎn):

  • 不經(jīng)過(guò)服務(wù)器儲(chǔ)存

  • 黑客需要誘導(dǎo)用戶點(diǎn)擊惡意url

  • 反饋率低,難以發(fā)現(xiàn)和修復(fù)

  • 為了防止出現(xiàn)非持久性XSS漏洞,必須確保以下幾點(diǎn):

  • 盡量不要從URL,document.referrer,document.forms 等這種DOM API中獲取數(shù)據(jù)直接渲染。

  • 盡量不要使用 eval, document.write(),document.writeln(), innerHTML,document.creteElement()等可執(zhí)行字符串的方法。

  • 對(duì)涉及DOM渲染的方法傳入的字符串參數(shù)做轉(zhuǎn)義(破壞html語(yǔ)法,使得展示字符而不是執(zhí)行代碼)。

  • 必要的話,前端渲染的時(shí)候?qū)θ魏蔚淖侄味夹枰鲛D(zhuǎn)義編碼。

2.持久型XSS漏洞

  • 持久性XSS漏洞被攻擊有以下幾個(gè)必要條件:
  • POST請(qǐng)求提交表單后端沒(méi)做轉(zhuǎn)義直接入庫(kù)
  • 后端從數(shù)據(jù)庫(kù)中取出數(shù)據(jù)沒(méi)做轉(zhuǎn)義直接輸出給前端
  • 前端拿到后端數(shù)據(jù)沒(méi)做轉(zhuǎn)義直接渲染頁(yè)面
  • 防止出現(xiàn)持久性XSS漏洞,需要前后端的配合,要做到以下幾點(diǎn):
  • 后端在數(shù)據(jù)入庫(kù)時(shí),不能相信任何前端數(shù)據(jù),將所有的字段統(tǒng)一進(jìn)行轉(zhuǎn)義處理。
  • 后端對(duì)返回給前端的數(shù)據(jù)統(tǒng)一進(jìn)行轉(zhuǎn)義處理。
  • 前端在渲染頁(yè)面的時(shí)候不能相信任何后端數(shù)據(jù),任何字段都需要做轉(zhuǎn)義處理。
  • 轉(zhuǎn)義操作可以手動(dòng)編寫js函數(shù)進(jìn)行轉(zhuǎn)義,也可以借助開(kāi)源工具包轉(zhuǎn)義。

四、SQL注入

為什么會(huì)存在sql注入呢,只能說(shuō)SQL出身不好。

  • 因?yàn)閟ql作為一種解釋型語(yǔ)言,在運(yùn)行時(shí)是由一個(gè)運(yùn)行時(shí)組件解釋語(yǔ)言代碼并執(zhí)行其中包含的指令的語(yǔ)言。

  • 基于這種執(zhí)行方式,產(chǎn)生了一系列叫做代碼注入(code injection)的漏洞 ,它的數(shù)據(jù)其實(shí)是由程序員編寫的代碼和用戶提交的數(shù)據(jù)共同組成的。

  • 程序員在web開(kāi)發(fā)時(shí),沒(méi)有過(guò)濾敏感字符,綁定變量,導(dǎo)致攻擊者可以通過(guò)sql靈活多變的語(yǔ)法,構(gòu)造精心巧妙的語(yǔ)句,不擇手段,達(dá)成目的,或者通過(guò)系統(tǒng)報(bào)錯(cuò),返回對(duì)自己有用的信息。

1.SQL注入的危害

  • 數(shù)據(jù)庫(kù)信息泄漏:數(shù)據(jù)庫(kù)中存放的用戶的隱私信息的泄露;
  • 網(wǎng)頁(yè)篡改:通過(guò)操作數(shù)據(jù)庫(kù)對(duì)特定網(wǎng)頁(yè)進(jìn)行篡改;
  • 數(shù)據(jù)庫(kù)被惡意操作:數(shù)據(jù)庫(kù)服務(wù)器被攻擊,數(shù)據(jù)庫(kù)的系統(tǒng)管理員帳戶被竄改;
  • 服務(wù)器被遠(yuǎn)程控制,被安裝后門;
  • 刪除和修改數(shù)據(jù)庫(kù)表信息.

2.SQL注入的方式

通常情況下,SQL注入的位置包括:

  • 表單提交,主要是POST請(qǐng)求,也包括GET請(qǐng)求;
  • URL參數(shù)提交,主要為GET請(qǐng)求參數(shù);
  • Cookie參數(shù)提交;
  • HTTP請(qǐng)求頭部的一些可修改的值,比如Referer、User_Agent等;

3.防止SQL注入的解決方案

  • 對(duì)用戶的輸入進(jìn)行校驗(yàn),使用正則表達(dá)式過(guò)濾傳入的參數(shù);
  • 使用參數(shù)化語(yǔ)句,不要拼接sql,也可以使用安全的存儲(chǔ)過(guò)程;
  • 不要使用管理員權(quán)限的數(shù)據(jù)庫(kù)連接,為每個(gè)應(yīng)用使用權(quán)限有限的數(shù)據(jù)庫(kù)連接;
  • 檢查數(shù)據(jù)存儲(chǔ)類型;
  • 重要的信息一定要加密;

總結(jié)

以上是生活随笔為你收集整理的几种常见的Web攻击的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。