1. <strong id="7actg"></strong>
    2. <table id="7actg"></table>

    3. <address id="7actg"></address>
      <address id="7actg"></address>
      1. <object id="7actg"><tt id="7actg"></tt></object>

        中高級(jí)前端常被問及的 WEB 安全相關(guān)面試題總結(jié)

        共 4121字,需瀏覽 9分鐘

         ·

        2021-11-19 22:09

        今天給大家介紹一下,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表單或請(qǐng)求參數(shù)之中提交到后端服務(wù)器,后端服務(wù)器如果未做輸入安全校驗(yàn),直接將變量取出進(jìn)行數(shù)據(jù)庫查詢,則極易中招。

        舉例如下:

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

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

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

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

        其中請(qǐng)求參數(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è)極簡(jiǎn)單的示例,在真實(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代碼作為請(qǐng)求參數(shù)放置URL中,誘導(dǎo)用戶點(diǎn)擊

        示例:

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

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

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

        3、CSRF 攻擊

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

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

        4、DDoS 攻擊

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

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

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

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

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

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

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

        技術(shù)從來都是一柄雙刃劍,分布式技術(shù)既可以用來提供高可用的服務(wù),也能夠被攻擊方用來進(jìn)行大規(guī)模殺傷性攻擊。攻擊者不再局限于單臺(tái)計(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地址而不是他們的域名,這簡(jiǎn)直是災(zāi)難,好在DNS默默在背后做了這一切,我們只需要記住一個(gè)域名,剩下的交給DNS來完成吧。

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

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

        • 我去請(qǐng)求的真的是一個(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)答
        • ......

        后來,為了在客戶端對(duì)收到對(duì)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是一種輕量級(jí)的數(shù)據(jù)交換格式,而劫持就是對(duì)數(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è)一般針對(duì)密碼而言,弱密碼(Weak Password)很容易被別人(對(duì)你很了解的人等)猜到或被破解工具暴力破解。

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

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

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

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

        解決方案:

        禁用 HTTP TRACE 方法。

        9、信息泄露

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

        所以一般需注意

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

        10、目錄遍歷漏洞

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

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

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

        12、文件上傳漏洞

        如果對(duì)文件上傳路徑變量過濾不嚴(yán),并且對(duì)用戶上傳的文件后綴以及文件類型限制不嚴(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ù)編號(hào) 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

        - EOF -

        瀏覽 49
        點(diǎn)贊
        評(píng)論
        收藏
        分享

        手機(jī)掃一掃分享

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

        手機(jī)掃一掃分享

        分享
        舉報(bào)
        1. <strong id="7actg"></strong>
        2. <table id="7actg"></table>

        3. <address id="7actg"></address>
          <address id="7actg"></address>
          1. <object id="7actg"><tt id="7actg"></tt></object>
            女女h百合无遮挡涩涩漫画软件 | 天天日综合| 亚洲成人网址在线观看 | 午夜黄色福利视频 | 操熟女逼 | 国产乱妇交换做爰XXXⅩ麻豆 | 国产三级农村妇女做受 | 麻豆亚洲AV成人无码久久精品 | 色婷婷大香蕉 | 国产一区二 |