解析JavaScript實(shí)現(xiàn)DDoS攻擊原理與保護(hù)措施
DDos介紹
最普遍的攻擊是對(duì)網(wǎng)站進(jìn)行分布式拒絕服務(wù)(DDoS)攻擊。在一個(gè)典型的DDoS攻擊中,攻擊者通過(guò)發(fā)送大量的數(shù)據(jù)到服務(wù)器,占用服務(wù)資源。從而達(dá)到阻止其他用戶的訪問(wèn)。
如果黑客使用JavaScript的DDoS攻擊,那么任何一臺(tái)計(jì)算機(jī)都可能成為肉雞,使?jié)撛诘墓袅繋缀跏菬o(wú)限的。
Javascript實(shí)現(xiàn)DDos攻擊原理分析
現(xiàn)在網(wǎng)站的交互性都是通過(guò)JavaScript來(lái)實(shí)現(xiàn)的。通過(guò)添加JavaScript直接插入HTML元素,或通過(guò)遠(yuǎn)程來(lái)加載JavaScript。瀏覽器會(huì)讀取script標(biāo)簽中的src屬性并運(yùn)行它所指向的腳本,其實(shí)不只是script標(biāo)簽可以用來(lái)攻擊,簡(jiǎn)單來(lái)說(shuō)只要是可以跨域訪問(wèn)的標(biāo)簽,如img,link等都可以實(shí)現(xiàn)DDos攻擊。
既然這些標(biāo)簽可以訪問(wèn)外站的資源,那么我們是不是就可以設(shè)個(gè)定時(shí)器無(wú)限訪問(wèn)這個(gè)網(wǎng)站,從而達(dá)到攻擊呢,那是肯定的。
最終DDos攻擊手法
如果只是一臺(tái)電腦進(jìn)行攻擊,那也造不成什么危害,除非是對(duì)方網(wǎng)站根本沒(méi)有對(duì)網(wǎng)站進(jìn)行安全保護(hù),現(xiàn)在大部分網(wǎng)站都有用CDN來(lái)隱藏真實(shí)的ip,并且這些網(wǎng)站大部分也有防DDos攻擊,很多網(wǎng)站也會(huì)設(shè)置網(wǎng)站黑名單,如果一臺(tái)計(jì)算機(jī)在一段時(shí)間內(nèi)不斷訪問(wèn)的話,那么就很有可能被加入黑名單。那么難道就沒(méi)有辦法了嗎。
自然不是,只要你開(kāi)放網(wǎng)站,黑客就有辦法攻擊,當(dāng)然也要看那個(gè)黑客的技術(shù)了。
現(xiàn)在的網(wǎng)站幾乎都使用了JavaScript的庫(kù)。為了節(jié)省帶寬,提高性能,很多網(wǎng)站都通過(guò)第三方的網(wǎng)站托管服務(wù),來(lái)加載這些js庫(kù)。如果這些第三方網(wǎng)站的js庫(kù)中存在惡意代碼的話,很有可能被利用,一些牛逼的黑客可以通過(guò)破解這些第三方網(wǎng)站的后臺(tái),修改腳本。如果用戶訪問(wèn)這個(gè)網(wǎng)站的話就會(huì)下載這些腳本并執(zhí)行,這些用戶的計(jì)算機(jī)就會(huì)變成肉雞,如果這個(gè)網(wǎng)站訪問(wèn)量比較大的話,那么就。。。
簡(jiǎn)單來(lái)說(shuō)就是通過(guò)訪問(wèn)量較大的網(wǎng)站攻擊目標(biāo)網(wǎng)站。
保護(hù)措施
為了解決這個(gè)問(wèn)題,W3C提出了一個(gè)新的功能叫做子資源的完整性,你可以告訴瀏覽器如果它不符合你期望的運(yùn)行腳本,通過(guò)使用加密哈希。它就像一個(gè)指紋:只有兩個(gè)文件具有相同的哈希,那么才能被匹配,當(dāng)用戶的計(jì)算機(jī)下載這些腳本后,瀏覽器會(huì)計(jì)算其哈希,如果與預(yù)期的不匹配,那么就說(shuō)明這些腳本已經(jīng)被篡改,瀏覽器將不會(huì)執(zhí)行這個(gè)腳本。
原先我們是這樣引用腳本的
<script src=">
現(xiàn)在的做法
<script src="http://www.xxx.com/xxx.js" integrity="sha384-hK8q2gkBjirpIGHAH+sgqYMv6i6mfx2JVZWJ50jyYhkuEHASU6AS1UTWSo32wuGL" crossorigin="anonymous"><br><br>integrity:哈希值<br>crossorigin:是為了保證瀏覽器的同源策略的正確實(shí)施,防止跨站腳本(XSS)攻擊<br><br>生成哈希值的網(wǎng)站:www.srihash.org
以上就是本文的全部?jī)?nèi)容,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作能帶來(lái)一定的幫助,同時(shí)也希望多多支持腳本之家!
相關(guān)文章
微信小程序12行js代碼自己寫(xiě)個(gè)滑塊功能(推薦)
這篇文章主要介紹了微信小程序12行js代碼自己寫(xiě)個(gè)滑塊功能,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-07-07跟我學(xué)習(xí)javascript的Date對(duì)象
跟我學(xué)習(xí)javascript的Date對(duì)象,文章主要介紹了Date 日期和時(shí)間對(duì)象的操作,文章末尾為大家附加了兩個(gè)案例,幫助大家更好的學(xué)習(xí)javascript的Date對(duì)象,對(duì)這方面感興趣的小伙伴們可以參考一下2015-11-11js實(shí)現(xiàn)密碼強(qiáng)度檢測(cè)【附示例】
下面小編就為大家?guī)?lái)一篇js實(shí)現(xiàn)密碼強(qiáng)度檢測(cè)【附示例】。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2016-03-03使用JSON格式提交數(shù)據(jù)到服務(wù)端的實(shí)例代碼
這篇文章主要介紹了使用JSON格式提交數(shù)據(jù)到服務(wù)端的實(shí)例代碼,代碼簡(jiǎn)單易懂,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友參考下2018-04-04如何在javascript 中使用 xmlHttpRequest 發(fā)送 POST
本文將通過(guò)不同的示例解釋如何使用JavaScript代碼在AJAX編程中發(fā)送 XMLHttpRequest post 請(qǐng)求,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧2023-07-07js函數(shù)的引用, 關(guān)于內(nèi)存的開(kāi)銷
函數(shù)的引用, 對(duì)于內(nèi)存的開(kāi)銷分析,需要的朋友可以參考下2012-09-09