站長(zhǎng)資訊網(wǎng)
        最全最豐富的資訊網(wǎng)站

        淺析Node常見的三種關(guān)于安全方面的處理

        本篇文章帶大家聊聊Node常見的三種安全防范手段,主要講解在開發(fā)Node服務(wù)端的時(shí)候, 三種關(guān)于安全方面的處理。

        淺析Node常見的三種關(guān)于安全方面的處理

        一、預(yù)防方式

        1、 sql注入

        這是一個(gè)最原始也最簡(jiǎn)單的攻擊, 從 web2.0 開始有了人機(jī)交互后就出現(xiàn)的一種攻擊方式

        其主要是通過輸入 sql 片段, 最終拼接成一段攻擊的 sql 代碼

        當(dāng)我們使用 node 連接到數(shù)據(jù)庫(kù)的時(shí)候, 通常會(huì)在 node 端寫 sql 語(yǔ)句來進(jìn)行數(shù)據(jù)庫(kù)查詢, 例如下方

        -- 這是一個(gè)簡(jiǎn)易的登錄判斷sql語(yǔ)句, 輸入 username 和 password 在 users 表中進(jìn)行用戶登錄驗(yàn)證,  然后獲取用戶的地址和年齡 select address, age from users where username=${username} and password=${password}
        登錄后復(fù)制

        但是如果我在 username 中做點(diǎn)手腳 使他傳入的是一個(gè)sql語(yǔ)句這樣就極其的危險(xiǎn) 【相關(guān)教程推薦:nodejs視頻教程、編程教學(xué)】

        -- username 輸入為 ali --  -- 上面這段 sql 就會(huì)被解析成這樣  select address, age from users where username=ali -- and password=${password}
        登錄后復(fù)制

        看上面的代碼片段可以發(fā)現(xiàn), -- 在sql中是屬于注釋的存在, 所以如果當(dāng)我在 sql 查詢動(dòng)態(tài)獲取用戶輸入的 username 字段中, 如果結(jié)尾是 — 就會(huì)把后面password的條件驗(yàn)證去掉

        也就是代表用戶無論輸入什么 password, 只要 username 字段在數(shù)據(jù)庫(kù)中存在就可以拿到對(duì)應(yīng)的信息

        當(dāng)然攻擊者也可以在后面繼續(xù)拼接刪庫(kù)的 sql 語(yǔ)句,這其實(shí)是更加危險(xiǎn)的

        -- username 輸入為 ali; delete from users where username="ali" -- -- 就會(huì)拼接成下面這種語(yǔ)句 這是極其危險(xiǎn)的 select address, age from users where username=ali; delete from users where username="ali" -- and password=${password}
        登錄后復(fù)制

        處理方案

        在 node 開發(fā)中連接數(shù)據(jù)庫(kù), 拼接sql語(yǔ)句是使用 mysql 這個(gè)npm包, 所以在這個(gè)包中也有對(duì)應(yīng) sql注入 攻擊的處理函數(shù)

        可以使用 mysql.escape函數(shù) , 對(duì)所有來源于前端的數(shù)據(jù)進(jìn)行包裹一層, 這個(gè)函數(shù)會(huì)把 -- 或者其他的特殊字符進(jìn)行轉(zhuǎn)義,這樣就不會(huì)出現(xiàn)在sql語(yǔ)句中會(huì)有注釋的情況

        2、xss 攻擊

        這個(gè)攻擊我們作為前端應(yīng)該是很熟悉的了

        其攻擊方式就是在頁(yè)面的展示內(nèi)中摻雜 Js 的代碼以獲取網(wǎng)頁(yè)信息

        在我們開發(fā) Node 服務(wù)端的時(shí)候, 對(duì)前端傳來的數(shù)據(jù)統(tǒng)統(tǒng)處理一下就行了 ,也就是進(jìn)行特殊字符轉(zhuǎn)義 (所有的轉(zhuǎn)義字符后都需要 加上;這個(gè)特殊符號(hào) 由于無法演示 我截圖的時(shí)候去掉了

        淺析Node常見的三種關(guān)于安全方面的處理

        處理方案

        開發(fā) Node 服務(wù)端,使用 xss 這個(gè)npm包,把前端傳入的數(shù)據(jù)都使用這個(gè)包裹一下就行

        3、密碼加密

        假如我們數(shù)據(jù)庫(kù)被入侵, 其中最不應(yīng)該泄露的就是用的信息了

        因?yàn)楣粽呖梢阅弥脩舻馁~戶密碼去嘗試登錄其他的系統(tǒng)

        處理方式

        這個(gè)就需要在數(shù)據(jù)庫(kù)不用明文存儲(chǔ)用戶的密碼信息, 在存入數(shù)據(jù)庫(kù)之前把密碼通過自定義 key 加密一下, 當(dāng)然這個(gè) key 需要你自己獨(dú)享 不能泄露

        或者通過其他密碼算法加密也是可以的

        二、結(jié)語(yǔ)

        最近也是在學(xué)習(xí) Node 相關(guān)的知識(shí),

        贊(0)
        分享到: 更多 (0)
        網(wǎng)站地圖   滬ICP備18035694號(hào)-2    滬公網(wǎng)安備31011702889846號(hào)
        主站蜘蛛池模板: 精品无码一区二区三区亚洲桃色| 国产精品高清一区二区三区不卡| 精品无码日韩一区二区三区不卡| 成人一区二区三区精品| 精品人无码一区二区三区| 久久久久九九精品影院| 日本精品一区二区三区在线观看| 久久精品国产亚洲av日韩| 亚洲福利精品电影在线观看| 精品国产免费人成网站| 国产精品电影网| 久久精品无码一区二区无码| 亚洲乱码日产精品a级毛片久久| 国产精品自在在线午夜福利| 欧美精品华人在线| 国产精品久久久久久久久免费| 久久精品aⅴ无码中文字字幕重口| 伊人精品视频在线| 久久国产精品视频| 国产一区二区精品尤物| 国产999精品久久久久久| 欧美精品华人在线| 柠檬福利精品视频导航| 99热在线日韩精品免费| 国产精品无码成人午夜电影| 久久精品国产亚洲AV电影| 久久国产精品一国产精品金尊 | 精品国产福利尤物免费| 伊人久久大香线蕉精品| 日本人精品video黑人| 久久er热视频在这里精品| 国产精品成人va| 久久99国产精品久久久| 免费精品99久久国产综合精品 | 亚洲AV无码久久精品色欲| 亚洲精品蜜桃久久久久久| 日本VA欧美VA欧美VA精品| 蜜芽亚洲av无码精品色午夜| 精品无码人妻一区二区三区品| 国产一精品一AV一免费| 91精品在线播放|