亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Node常見(jiàn)的三種安全防范手段詳解

 更新時(shí)間:2023年02月13日 11:03:52   作者:Ali2333  
這篇文章主要為大家介紹了Node常見(jiàn)的三種安全防范手段詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪

一、前言

本人主要是講解在開(kāi)發(fā)Node服務(wù)端的時(shí)候, 三種關(guān)于安全方面的處理

二、預(yù)防方式

1、 sql注入

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

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

當(dāng)我們使用 node 連接到數(shù)據(jù)庫(kù)的時(shí)候, 通常會(huì)在 node 端寫 sql 語(yǔ)句來(lái)進(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}

但是如果我在 username 中做點(diǎn)手腳 使他傳入的是一個(gè)sql語(yǔ)句這樣就極其的危險(xiǎn)

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

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

也就是代表用戶無(wú)論輸入什么 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}

處理方案

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

可以使用 mysql.escape函數(shù) , 對(duì)所有來(lái)源于前端的數(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è)信息

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

處理方案

開(kāi)發(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ù)之前把密碼通過(guò)自定義 key 加密一下, 當(dāng)然這個(gè) key 需要你自己獨(dú)享 不能泄露

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

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

最近也是在學(xué)習(xí) Node 相關(guān)的知識(shí), 以上就是關(guān)于開(kāi)發(fā) Node 服務(wù)端,常見(jiàn)的三種安全防范手段

以上就是Node常見(jiàn)的三種安全防范手段詳解的詳細(xì)內(nèi)容,更多關(guān)于Node安全防范的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • 淺談Node.js ORM框架Sequlize之表間關(guān)系

    淺談Node.js ORM框架Sequlize之表間關(guān)系

    下面小編就為大家?guī)?lái)一篇淺談Node.js ORM框架Sequlize之表間關(guān)系。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-07-07
  • Linux?Ubuntu升級(jí)nodejs版本的簡(jiǎn)單步驟

    Linux?Ubuntu升級(jí)nodejs版本的簡(jiǎn)單步驟

    Node.js是一種對(duì)應(yīng)于JavaScript運(yùn)行時(shí)環(huán)境的編程語(yǔ)言,這篇文章主要給大家介紹了關(guān)于Linux?Ubuntu升級(jí)nodejs版本的簡(jiǎn)單步驟,文中通過(guò)圖文介紹的非常詳細(xì),需要的朋友可以參考下
    2023-12-12
  • Express.js 全局錯(cuò)誤處理實(shí)現(xiàn)

    Express.js 全局錯(cuò)誤處理實(shí)現(xiàn)

    本文主要介紹了Express.js 全局錯(cuò)誤處理實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-06-06
  • Node端異常捕獲的實(shí)現(xiàn)方法

    Node端異常捕獲的實(shí)現(xiàn)方法

    本文主要介紹了Node端異常捕獲的實(shí)現(xiàn)方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2022-06-06
  • express中創(chuàng)建 websocket 接口及問(wèn)題解答

    express中創(chuàng)建 websocket 接口及問(wèn)題解答

    本文主要介紹了express中創(chuàng)建 websocket 接口及問(wèn)題解答,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2022-05-05
  • nodejs redis 發(fā)布訂閱機(jī)制封裝實(shí)現(xiàn)方法及實(shí)例代碼

    nodejs redis 發(fā)布訂閱機(jī)制封裝實(shí)現(xiàn)方法及實(shí)例代碼

    這篇文章主要介紹了nodejs redis 發(fā)布訂閱機(jī)制封裝的相關(guān)資料,這里提供了實(shí)現(xiàn)方法,及實(shí)例代碼,具有參考價(jià)值,需要的朋友可以參考下
    2016-12-12
  • Nodejs實(shí)現(xiàn)定時(shí)爬蟲的完整實(shí)例

    Nodejs實(shí)現(xiàn)定時(shí)爬蟲的完整實(shí)例

    這篇文章主要給大家介紹了關(guān)于Nodejs實(shí)現(xiàn)定時(shí)爬蟲的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-03-03
  • 深入解析koa之中間件流程控制

    深入解析koa之中間件流程控制

    這篇文章主要介紹了深入解析koa之中間件流程控制,koa被認(rèn)為是第二代web后端開(kāi)發(fā)框架,相比于前代express而言,其最大的特色無(wú)疑就是解決了回調(diào)金字塔的問(wèn)題,讓異步的寫法更加的簡(jiǎn)潔。,需要的朋友可以參考下
    2019-06-06
  • 關(guān)于node編寫文件上傳的接口的坑及解決

    關(guān)于node編寫文件上傳的接口的坑及解決

    這篇文章主要介紹了關(guān)于node編寫文件上傳的接口的坑及解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-06-06
  • Node.js v8.0.0正式發(fā)布!看看帶來(lái)了哪些主要新特性

    Node.js v8.0.0正式發(fā)布!看看帶來(lái)了哪些主要新特性

    Node.js v8.0.0 已正式發(fā)布。v8.0.0 是下一個(gè)主要的版本,帶來(lái)了一系列重大的變化和新功能,內(nèi)容十分多!下面這篇文章主要帶著大家一起看看Node.js v8.0.0帶來(lái)了哪些主要新特性,需要的朋友可以參考借鑒,下面來(lái)一起看看吧。
    2017-06-06

最新評(píng)論