這篇文章主要介紹“Node常見(jiàn)的安全處理方法有哪些”,在日常操作中,相信很多人在Node常見(jiàn)的安全處理方法有哪些問(wèn)題上存在疑惑,小編查閱了各式資料,整理出簡(jiǎn)單好用的操作方法,希望對(duì)大家解答”Node常見(jiàn)的安全處理方法有哪些”的疑惑有所幫助!接下來(lái),請(qǐng)跟著小編一起來(lái)學(xué)習(xí)吧!
衡陽(yáng)縣網(wǎng)站建設(shè)公司成都創(chuàng)新互聯(lián),衡陽(yáng)縣網(wǎng)站設(shè)計(jì)制作,有大型網(wǎng)站制作公司豐富經(jīng)驗(yàn)。已為衡陽(yáng)縣成百上千提供企業(yè)網(wǎng)站建設(shè)服務(wù)。企業(yè)網(wǎng)站搭建\成都外貿(mào)網(wǎng)站制作要多少錢(qián),請(qǐng)找那個(gè)售后服務(wù)好的衡陽(yáng)縣做網(wǎng)站的公司定做!
1、 sql注入
這是一個(gè)最原始也最簡(jiǎn)單的攻擊, 從 web2.0 開(kāi)始有了人機(jī)交互后就出現(xiàn)的一種攻擊方式
其主要是通過(guò)輸入 sql 片段, 最終拼接成一段攻擊的 sql 代碼
當(dāng)我們使用 node 連接到數(shù)據(jù)庫(kù)的時(shí)候, 通常會(huì)在 node 端寫(xiě) sql語(yǔ)句來(lái)進(jìn)行數(shù)據(jù)庫(kù)查詢(xún), 例如下方
-- 這是一個(gè)簡(jiǎn)易的登錄判斷sql語(yǔ)句, 輸入 username 和 password 在 users 表中進(jìn)行用戶(hù)登錄驗(yàn)證, 然后獲取用戶(hù)的地址和年齡
select address, age from users where username=${username} and password=${password}
但是如果我在 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ā)現(xiàn), -- 在sql中是屬于注釋的存在
, 所以如果當(dāng)我在 sql 查詢(xún)動(dòng)態(tài)獲取用戶(hù)輸入的 username 字段中, 如果結(jié)尾是 -- 就會(huì)把后面password的條件驗(yàn)證去掉
也就是代表用戶(hù)無(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)楣粽呖梢阅弥脩?hù)的賬戶(hù)密碼去嘗試登錄其他的系統(tǒng)。
這個(gè)就需要在數(shù)據(jù)庫(kù)不用明文存儲(chǔ)用戶(hù)的密碼
信息, 在存入數(shù)據(jù)庫(kù)之前把密碼通過(guò)自定義 key 加密一下
, 當(dāng)然這個(gè) key 需要你自己獨(dú)享 不能泄露,或者通過(guò)其他密碼算法加密也是可以的。
到此,關(guān)于“Node常見(jiàn)的安全處理方法有哪些”的學(xué)習(xí)就結(jié)束了,希望能夠解決大家的疑惑。理論與實(shí)踐的搭配能更好的幫助大家學(xué)習(xí),快去試試吧!若想繼續(xù)學(xué)習(xí)更多相關(guān)知識(shí),請(qǐng)繼續(xù)關(guān)注創(chuàng)新互聯(lián)網(wǎng)站,小編會(huì)繼續(xù)努力為大家?guī)?lái)更多實(shí)用的文章!
網(wǎng)頁(yè)名稱(chēng):Node常見(jiàn)的安全處理方法有哪些
分享鏈接:http://www.chinadenli.net/article20/gocdco.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供標(biāo)簽優(yōu)化、定制開(kāi)發(fā)、品牌網(wǎng)站制作、靜態(tài)網(wǎng)站、、網(wǎng)站設(shè)計(jì)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話(huà):028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)