欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

Node.js面試問題的示例分析

這篇文章主要介紹了Node.js面試問題的示例分析,具有一定借鑒價值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。

成都創(chuàng)新互聯(lián)公司成立于2013年,先為樂昌等服務(wù)建站,樂昌等地企業(yè),進行企業(yè)商務(wù)咨詢服務(wù)。為樂昌企業(yè)網(wǎng)站制作PC+手機+微官網(wǎng)三網(wǎng)同步一站式服務(wù)解決您的所有建站問題。

什么是error-first的回調(diào)方式

Error-first回調(diào)方式用來同時傳遞error和data。將錯誤作為第一個參數(shù),它就必須先檢查看看有沒有錯誤先。另外的參數(shù)就用來傳遞data了。

fs.readFile(filePath, function(err, data) {
 if(err) {
  //處理錯誤,這里的return很重要,如果發(fā)生錯誤,在此處就會停止了。
  return console.log(err);
 }
 //傳遞data
 console.log(data);
})

你是如何避免回調(diào)地獄的?

  1. 模塊化 把回調(diào)函數(shù)分割成獨立的函數(shù)

  2. 使用控制流的庫,比如async

  3. generators結(jié)合Promise

  4. async/await

Promise是什么?

概念不多說了,簡單來說就是幫助你更好地處理異步操作的東西。

new Promise((resolve, reject) => {
 setTimeout(() => {
  resolve('result');
 }, 100)
})
 .then(console.log)
 .catch(console.error)

stub是什么? 舉個例子?

stub是用來模擬組件/模塊行為的東西,它在測試階段為函數(shù)調(diào)用提供內(nèi)部響應(yīng)。

例子是寫文件,但實際上并沒有這么做

var fs = require('fs');

var writeFileStub = sinon.stub(fs, 'writeFile', function(path, data, cb) {
 return cb(null)
})

expect(writeFileStub).to.be.called
writeFileStub.restore();

如何保證你的HTTP cookies安全不受XSS攻擊

在set-cookieHTTP頭部加上這幾個信息:

  1. HttpOnly-這個屬性用來防止跨站腳本攻擊,它不允許cookie被JavaScript代碼獲取。

  2. secure-這個屬性告訴瀏覽器只有在HTTPS連接時才發(fā)送cookie

像這樣:Set-Cookit: sid=<cookit-value>; HttpOnly

下面這段代碼有什么問題

new Promise((resolve, reject) => {
 throw new Error('error')
}).then(console.log)

then后面沒有跟上catch,這樣的話如果出錯的這段代碼還是默默地運行,并不會告訴你哪里出錯了。

修改后:

new Promise((resolve, reject) => {
 throw new Error('error')
}).then(console.log).catch(console.error)

如果你正在調(diào)試一個大型項目,你不知道哪個Promise可能會有問題,可以使用unhandledRejection。它會打印出所有未經(jīng)處理的Promise異常

process.on('unhandledRejection', (err) => {
 console.log(err)
})

下面的代碼有什么問題?

function checkApiKey(apiKeyFromDb, apiKeyReceived) {
 if (apiKeyFromDb === apiKeyReceived) {
  return true
 }
 return false
}

說實話我剛看到的時候也是一臉懵逼,這有啥問題?不是很正常的一個if else代碼嗎。

不過這不是普通的if else代碼,這是用來比較安全證書的代碼,這個時候你不能泄露一丁點的信息,所以確保他們在一定的時間內(nèi)進行比較。否則的你的應(yīng)用就可能受到時序攻擊了。

什么是時序攻擊(timing attacks)?Node.js使用的V8引擎試圖從表示層面上優(yōu)化代碼。它一個字符一個字符地比較,一旦找到不符合它就停止比較。

你可以使用cryptiles這個npm模塊來解決這個問題

function checkApiKey(apiKeyFromDb, apiKeyReceived) {
 return cryptiles.fixedTimeCimparison(apiKeyFromDb, apiKeyReceived)
}

如何通俗地解釋時序攻擊(timing attack)?

時序攻擊屬于側(cè)信道攻擊/旁路攻擊(Side Channel Attack),側(cè)信道攻擊是指利用信道外的信息,比如加解密的速度/加解密時芯片引腳的電壓/密文傳輸?shù)牧髁亢屯緩降冗M行攻擊的方式,一個詞形容就是“旁敲側(cè)擊”。

舉一個最簡單的計時攻擊的例子,某個函數(shù)負責(zé)比較用戶輸入的密碼和存放在系統(tǒng)內(nèi)密碼是否相同,如果該函數(shù)是從第一位開始比較,發(fā)現(xiàn)不同就立即返回,那么通過計算返回的速度就知道了大概是哪一位開始不同的,這樣就實現(xiàn)了電影中經(jīng)常出現(xiàn)的按位破解密碼的場景。密碼破解復(fù)雜度成千上萬倍甚至百萬千萬倍的下降。

最簡單的防御方法是:“發(fā)現(xiàn)錯誤的時候并不立即返回,而是設(shè)一個標志位,直到完全比較完兩個字符串再返回”。

時序攻擊并非是一種理論攻擊方法,OpenSSL、OpenSSH等應(yīng)用都曾經(jīng)有時序攻擊漏洞,舉個實際的例子吧:

Node.js面試問題的示例分析

下面的代碼會輸出什么

Promise.reso(1)
 .then((x) => x + 1)
 .then((x) => {throw new Error('My Error')})
 .catch(() => 1)
 .then((x) => x + 1)
 .then((x) => console.log(x))
 .catch(console.error)
  1. 一個新的Promise被創(chuàng)造出來,它會解析參數(shù)1

  2. 解析后的值會被加上1(現(xiàn)在是2),并立即返回了這個2

  3. 解析的值被丟棄,拋出一個異常

  4. 異常被丟棄,新的值1被返回

  5. catch后運行不會停止,在異常處理之前,它繼續(xù)運行,一個新的,增加了1后的值2被返回

  6. 返回值被打印出來

  7. 這一行不會運行,因為沒有異常

感謝你能夠認真閱讀完這篇文章,希望小編分享的“Node.js面試問題的示例分析”這篇文章對大家有幫助,同時也希望大家多多支持創(chuàng)新互聯(lián),關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,更多相關(guān)知識等著你來學(xué)習(xí)!

網(wǎng)站名稱:Node.js面試問題的示例分析
轉(zhuǎn)載來源:http://chinadenli.net/article26/ppcdjg.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供App開發(fā)、靜態(tài)網(wǎng)站做網(wǎng)站、移動網(wǎng)站建設(shè)自適應(yīng)網(wǎng)站、微信小程序

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

搜索引擎優(yōu)化
久久精品国产熟女精品| 国产国产精品精品在线| 夜色福利久久精品福利| 国产一区国产二区在线视频| 激情国产白嫩美女在线观看| 日本亚洲欧美男人的天堂| 日本免费一级黄色录像| 日韩午夜福利高清在线观看| 色播五月激情五月婷婷| 国产亚洲二区精品美女久久| 激情少妇一区二区三区| 日本精品中文字幕人妻| 国内女人精品一区二区三区| 日韩黄片大全免费在线看| 99久久精品国产麻豆| 欧美国产极品一区二区| 精品一区二区三区人妻视频| 日韩成人中文字幕在线一区 | 日韩欧美中文字幕人妻| 精产国品一二三区麻豆| 精品精品国产欧美在线| 精品精品国产自在久久高清| 高中女厕偷拍一区二区三区| 国产又粗又猛又爽又黄| 欧美日本精品视频在线观看| 精品一区二区三区三级视频| 一区二区三区在线不卡免费| 护士又紧又深又湿又爽的视频| 亚洲熟妇av一区二区三区色堂| 欧美做爰猛烈叫床大尺度| 日本黄色录像韩国黄色录像| 欧美日韩亚洲巨色人妻| 激情视频在线视频在线视频| 国产一区一一一区麻豆| 高跟丝袜av在线一区二区三区| 少妇福利视频一区二区| 不卡中文字幕在线免费看| 东京热男人的天堂社区| 黄色片国产一区二区三区| 欧美黑人暴力猛交精品| 精品欧美日韩一区二区三区|