<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          前端3年以上面試常考問的web安全問題總結(jié)

          共 4312字,需瀏覽 9分鐘

           ·

          2021-10-17 15:30


          大廠技術(shù)??高級前端??Node進(jìn)階

          點(diǎn)擊上方?程序員成長指北,關(guān)注公眾號

          回復(fù)1,加入高級Node交流群

          大家好,今天給大家介紹一下,Web安全領(lǐng)域常見的一些安全問題。

          1、SQL 注入

          SQL注入攻擊的核心在于讓W(xué)eb服務(wù)器執(zhí)行攻擊者期望的SQL語句,以便得到數(shù)據(jù)庫中的感興趣的數(shù)據(jù)或?qū)?shù)據(jù)庫進(jìn)行讀取、修改、刪除、插入等操作,達(dá)到其邪惡的目的。

          而如何讓W(xué)eb服務(wù)器執(zhí)行攻擊者的SQL語句呢?SQL注入的常規(guī)套路在于將SQL語句放置于Form表單或請求參數(shù)之中提交到后端服務(wù)器,后端服務(wù)器如果未做輸入安全校驗(yàn),直接將變量取出進(jìn)行數(shù)據(jù)庫查詢,則極易中招。

          舉例如下:

          對于一個(gè)根據(jù)用戶ID獲取用戶信息的接口,后端的SQL語句一般是這樣:

          select?name,[...]?from?t_user?whereid=$id

          其中,$id就是前端提交的用戶id,而如果前端的請求是這樣:

          GET?xx/userinfo?id=1%20or%201=1

          其中請求參數(shù)id轉(zhuǎn)義后就是1 or 1=1,如果后端不做安全過濾直接提交數(shù)據(jù)庫查詢,SQL語句就變成了:

          select?name,[...]?from?t_user?whereid=1or1=1

          其結(jié)果是把用戶表中的所有數(shù)據(jù)全部查出,達(dá)到了黑客泄露數(shù)據(jù)的目的。

          以上只是一個(gè)極簡單的示例,在真實(shí)的SQL注入攻擊中參數(shù)構(gòu)造和SQL語句遠(yuǎn)比這復(fù)雜得多,不過原理是一致的。

          2、XSS 攻擊

          XSS全稱跨站腳本攻擊(Cross Site Scripting),為了與重疊樣式表CSS區(qū)分,換了另一個(gè)縮寫XSS。

          XSS攻擊的核心是將可執(zhí)行的前端腳本代碼(一般為JavaScript)植入到網(wǎng)頁中,聽起來比較拗口,用大白話說就是攻擊者想讓你的瀏覽器執(zhí)行他寫的JS代碼。那如何辦到呢?一般XSS分為兩種:

          反射型
          • 1、攻擊者將JS代碼作為請求參數(shù)放置URL中,誘導(dǎo)用戶點(diǎn)擊

          示例:

          http://localhost:8080/test?name=
          • 2、用戶點(diǎn)擊后,該JS作為請求參數(shù)傳給Web服務(wù)器后端
          • 3、后端服務(wù)器沒有檢查過濾,簡單處理后放入網(wǎng)頁正文中返回給瀏覽器
          • 4、瀏覽器解析返回的網(wǎng)頁,中招!
          存儲型

          上述方式攻擊腳本直接經(jīng)服務(wù)器轉(zhuǎn)手后返回瀏覽器觸發(fā)執(zhí)行,存儲型與之的區(qū)別在于能夠?qū)⒐裟_本入庫存儲,在后面進(jìn)行查詢時(shí),再將攻擊腳本渲染進(jìn)網(wǎng)頁,返回給瀏覽器觸發(fā)執(zhí)行。常見的套路舉例如下:

          • 1、攻擊者網(wǎng)頁回帖,帖子中包含JS腳本
          • 2、回帖提交服務(wù)器后,存儲至數(shù)據(jù)庫
          • 3、其他網(wǎng)友查看帖子,后臺查詢該帖子的回帖內(nèi)容,構(gòu)建完整網(wǎng)頁,返回瀏覽器
          • 4、該網(wǎng)友瀏覽器渲染返回的網(wǎng)頁,中招!

          3、CSRF 攻擊

          CSRF,跨站請求偽造,其核心思想在于,在打開A網(wǎng)站的情況下,另開Tab頁面打開惡意網(wǎng)站B,此時(shí)在B頁面的“唆使”下,瀏覽器發(fā)起一個(gè)對網(wǎng)站A的HTTP請求。這個(gè)過程的危害在于2點(diǎn):

          • 1、這個(gè)HTTP請求不是用戶主動意圖,而是B“唆使的”,如果是一個(gè)危害較大的請求操作(發(fā)郵件?刪數(shù)據(jù)?等等)那就麻煩了
          • 2、因?yàn)橹癆網(wǎng)站已經(jīng)打開了,瀏覽器存有A下發(fā)的Cookie或其他用于身份認(rèn)證的信息,這一次被“唆使”的請求,將會自動帶上這些信息,A網(wǎng)站后端分不清楚這是否是用戶真實(shí)的意愿

          4、DDoS 攻擊

          DDoS全稱Distributed Denial of Service:分布式拒絕服務(wù)攻擊(在這個(gè)文章里也有介紹:)。是拒絕服務(wù)攻擊的升級版。拒絕攻擊服務(wù)顧名思義,讓服務(wù)不可用。常用于攻擊對外提供服務(wù)的服務(wù)器,像常見的:

          • Web服務(wù)
          • 郵件服務(wù)
          • DNS服務(wù)
          • 即時(shí)通訊服務(wù)
          • ......

          攻擊者不斷地提出服務(wù)請求,讓合法用戶的請求無法及時(shí)處理,這就是 DoS 攻擊。

          攻擊者使用多臺計(jì)算機(jī)或者計(jì)算機(jī)集群進(jìn)行 DoS 攻擊,就是 DDoS 攻擊。

          在早期互聯(lián)網(wǎng)技術(shù)還沒有那么發(fā)達(dá)的時(shí)候,發(fā)起DoS攻擊是一件很容易的事情:一臺性能強(qiáng)勁的計(jì)算機(jī),寫個(gè)程序多線程不斷向服務(wù)器進(jìn)行請求,服務(wù)器應(yīng)接不暇,最終無法處理正常的請求,對別的正常用戶來說,看上去網(wǎng)站貌似無法訪問,拒絕服務(wù)就是這么個(gè)意思。

          后來隨著技術(shù)對發(fā)展,現(xiàn)在的服務(wù)器早已不是一臺服務(wù)器那么簡單,你訪問一個(gè)www.baidu.com的域名,背后是數(shù)不清的CDN節(jié)點(diǎn),數(shù)不清的Web服務(wù)器。

          這種情況下,還想靠單臺計(jì)算機(jī)去試圖讓一個(gè)網(wǎng)絡(luò)服務(wù)滿載,無異于雞蛋碰石頭,對方?jīng)]趴下,自己先趴下了。

          技術(shù)從來都是一柄雙刃劍,分布式技術(shù)既可以用來提供高可用的服務(wù),也能夠被攻擊方用來進(jìn)行大規(guī)模殺傷性攻擊。攻擊者不再局限于單臺計(jì)算機(jī)的攻擊能力,轉(zhuǎn)而通過成規(guī)模的網(wǎng)絡(luò)集群發(fā)起拒絕服務(wù)攻擊。

          5、DNS劫持

          當(dāng)今互聯(lián)網(wǎng)流量中,以HTTP/HTTPS為主的Web服務(wù)產(chǎn)生的流量占據(jù)了絕大部分。Web服務(wù)發(fā)展的如火如荼,這背后離不開一個(gè)默默無聞的大功臣就是域名解析系統(tǒng):

          如果沒有DNS,我們上網(wǎng)需要記憶每個(gè)網(wǎng)站的IP地址而不是他們的域名,這簡直是災(zāi)難,好在DNS默默在背后做了這一切,我們只需要記住一個(gè)域名,剩下的交給DNS來完成吧。

          也正是因?yàn)槠渲匾裕瑒e有用心的人自然是不會放過它,DNS劫持技術(shù)被發(fā)明了出來。

          DNS提供服務(wù)用來將域名轉(zhuǎn)換成IP地址,然而在早期協(xié)議的設(shè)計(jì)中并沒有太多考慮其安全性,對于查詢方來說:

          • 我去請求的真的是一個(gè)DNS服務(wù)器嗎?是不是別人冒充的?
          • 查詢的結(jié)果有沒有被人篡改過?這個(gè)IP真是這個(gè)網(wǎng)站的嗎?

          DNS協(xié)議中沒有機(jī)制去保證能回答這些問題,因此DNS劫持現(xiàn)象非常泛濫,從用戶在地址欄輸入一個(gè)域名的那一刻起,一路上的兇險(xiǎn)防不勝防:

          • 本地計(jì)算機(jī)中的木馬修改hosts文件
          • 本地計(jì)算機(jī)中的木馬修改DNS數(shù)據(jù)包中的應(yīng)答
          • 網(wǎng)絡(luò)中的節(jié)點(diǎn)(如路由器)修改DNS數(shù)據(jù)包中的應(yīng)答
          • 網(wǎng)絡(luò)中的節(jié)點(diǎn)(如運(yùn)營商)修改DNS數(shù)據(jù)包中的應(yīng)答
          • ......

          后來,為了在客戶端對收到對DNS應(yīng)答進(jìn)行校驗(yàn),出現(xiàn)了DNSSEC技術(shù),一定程度上可以解決上面的部分問題。但限于一些方面的原因,這項(xiàng)技術(shù)并沒有大規(guī)模用起來,尤其在國內(nèi),鮮有部署應(yīng)用。

          再后來,以阿里、騰訊等頭部互聯(lián)網(wǎng)廠商開始推出了httpDNS服務(wù),來了一招釜底抽薪,雖然這項(xiàng)技術(shù)的名字中還有DNS三個(gè)字母,但實(shí)現(xiàn)上和原來但DNS已經(jīng)是天差地別,通過這項(xiàng)技術(shù)讓DNS變成了在http協(xié)議之上的一個(gè)應(yīng)用服務(wù)。

          6、JSON 劫持

          JSON是一種輕量級的數(shù)據(jù)交換格式,而劫持就是對數(shù)據(jù)進(jìn)行竊取(或者應(yīng)該稱為打劫、攔截比較合適。惡意攻擊者通過某些特定的手段,將本應(yīng)該返回給用戶的JSON數(shù)據(jù)進(jìn)行攔截,轉(zhuǎn)而將數(shù)據(jù)發(fā)送回給惡意攻擊者,這就是JSON劫持的大概含義。一般來說進(jìn)行劫持的JSON數(shù)據(jù)都是包含敏感信息或者有價(jià)值的數(shù)據(jù)。

          7、暴力破解

          這個(gè)一般針對密碼而言,弱密碼(Weak Password)很容易被別人(對你很了解的人等)猜到或被破解工具暴力破解。

          解決方案 密碼復(fù)雜度要足夠大,也要足夠隱蔽 限制嘗試次數(shù)

          8.、HTTP 報(bào)頭追蹤漏洞

          HTTP/1.1(RFC2616)規(guī)范定義了 HTTP TRACE 方法,主要是用于客戶端通過向 Web 服務(wù)器提交 TRACE 請求來進(jìn)行測試或獲得診斷信息。

          當(dāng) Web 服務(wù)器啟用 TRACE 時(shí),提交的請求頭會在服務(wù)器響應(yīng)的內(nèi)容(Body)中完整的返回,其中 HTTP 頭很可能包括 Session Token、Cookies 或其它認(rèn)證信息。攻擊者可以利用此漏洞來欺騙合法用戶并得到他們的私人信息。

          解決方案:

          禁用 HTTP TRACE 方法。

          9、信息泄露

          由于 Web 服務(wù)器或應(yīng)用程序沒有正確處理一些特殊請求,泄露 Web 服務(wù)器的一些敏感信息,如用戶名、密碼、源代碼、服務(wù)器信息、配置信息等。

          所以一般需注意

          應(yīng)用程序報(bào)錯(cuò)時(shí),不對外產(chǎn)生調(diào)試信息 過濾用戶提交的數(shù)據(jù)與特殊字符 保證源代碼、服務(wù)器配置的安全

          10、目錄遍歷漏洞

          攻擊者向 Web 服務(wù)器發(fā)送請求,通過在 URL 中或在有特殊意義的目錄中附加 ../、或者附加 ../ 的一些變形(如 .. 或 ..// 甚至其編碼),導(dǎo)致攻擊者能夠訪問未授權(quán)的目錄,以及在 Web 服務(wù)器的根目錄以外執(zhí)行命令。

          11、命令執(zhí)行漏洞

          命令執(zhí)行漏洞是通過 URL 發(fā)起請求,在 Web 服務(wù)器端執(zhí)行未授權(quán)的命令,獲取系統(tǒng)信息、篡改系統(tǒng)配置、控制整個(gè)系統(tǒng)、使系統(tǒng)癱瘓等。

          12、文件上傳漏洞

          如果對文件上傳路徑變量過濾不嚴(yán),并且對用戶上傳的文件后綴以及文件類型限制不嚴(yán),攻擊者可通過 Web 訪問的目錄上傳任意文件,包括網(wǎng)站后門文件(webshell),進(jìn)而遠(yuǎn)程控制網(wǎng)站服務(wù)器。

          所以一般需注意:

          在開發(fā)網(wǎng)站及應(yīng)用程序過程中,需嚴(yán)格限制和校驗(yàn)上傳的文件,禁止上傳惡意代碼的文件 限制相關(guān)目錄的執(zhí)行權(quán)限,防范 webshell 攻擊

          13、其他漏洞

          • SSLStrip 攻擊
          • OpenSSL Heartbleed 安全漏洞
          • CCS 注入漏洞
          • 證書有效性驗(yàn)證漏洞

          14、業(yè)務(wù)漏洞

          一般業(yè)務(wù)漏洞是跟具體的應(yīng)用程序相關(guān),比如參數(shù)篡改(連續(xù)編號 ID / 訂單、1 元支付)、重放攻擊(偽裝支付)、權(quán)限控制(越權(quán)操作)等。

          15、框架或應(yīng)用漏洞

          • WordPress 4.7 / 4.7.1:REST API 內(nèi)容注入漏洞
          • Drupal Module RESTWS 7.x:Remote PHP Code Execution
          • SugarCRM 6.5.23:REST PHP Object Injection Exploit
          • Apache Struts:REST Plugin With Dynamic Method Invocation Remote Code Execution
          • Oracle GlassFish Server:REST CSRF
          • QQ Browser 9.6:API 權(quán)限控制問題導(dǎo)致泄露隱私模式
          • Hacking Docker:Registry API 未授權(quán)訪問
          作者:senntyou
          segmentfault.com/a/1190000018004657
          Node 社群


          我組建了一個(gè)氛圍特別好的 Node.js 社群,里面有很多 Node.js小伙伴,如果你對Node.js學(xué)習(xí)感興趣的話(后續(xù)有計(jì)劃也可以),我們可以一起進(jìn)行Node.js相關(guān)的交流、學(xué)習(xí)、共建。下方加 考拉 好友回復(fù)「Node」即可。


          ???“分享、點(diǎn)贊在看” 支持一波??

          瀏覽 43
          點(diǎn)贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評論
          圖片
          表情
          推薦
          點(diǎn)贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  欧美一级乱码 | 又爽又黄无遮挡网站 | 亚洲在线小电影 | 成人视频免费网站 | av婷婷免费 |