国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專(zhuān)欄INFORMATION COLUMN

提高NodeJS網(wǎng)站的安全性:Web服務(wù)器防黑客攻擊技巧

waterc / 3513人閱讀

摘要:盡管這樣,我們還沒(méi)有形成很多的安全準(zhǔn)則。在這篇文章中,我會(huì)分享一些關(guān)于提高安全性方面的技巧。注跨站腳本攻擊發(fā)生這種情況時(shí),攻擊者注入可執(zhí)行代碼的響應(yīng)。這樣可能會(huì)被跨站點(diǎn)腳本攻擊。

毫無(wú)疑問(wèn),Node.js現(xiàn)在是越來(lái)越成熟。盡管這樣,我們還沒(méi)有形成很多的安全準(zhǔn)則。
在這篇文章中,我會(huì)分享一些關(guān)于提高Node.js安全性方面的技巧。

不用eval,贏得朋友

你不僅僅要避免使用eval - 你也應(yīng)該避免使用在下列情況,他們等價(jià)于直接使用eval;

setInterval(String, 2)
setTimeout(String, 2)
new Function(String)

注* eval: 直接將字符串轉(zhuǎn)化為代碼執(zhí)行,如: eval("alert("hi")")

為什么不要用eval?

如果你對(duì)用戶(hù)輸入的內(nèi)容進(jìn)行了eval運(yùn)行(千萬(wàn)不要這么設(shè)計(jì)),你就有可能受到注入攻擊。并且這種運(yùn)行方式很慢。

請(qǐng)使用Strict嚴(yán)格模式

使用這種模式將限制你的變量聲明,并總會(huì)將一些可能隱藏的錯(cuò)誤拋出來(lái),下面是幾個(gè)例子:

1.不可刪除的屬性
"use strict";
delete Object.prototype; // TypeError
2. 對(duì)象屬性必須是唯一的
"use strict";  
var obj = {  
    a: 1, 
    a: 2 
}; 
// syntax error
3.禁止使用with
var obj = { x: 17 };  
with (obj) // !!! syntax error  
{

}
靜態(tài)代碼分析

使用 JSLint, JSHint 或 ESLint 來(lái)靜態(tài)分析你的代碼. 靜態(tài)代碼分析可以讓你在早期捕獲一些潛在的BUG.

測(cè)試

這一點(diǎn)不言而喻:測(cè)試,測(cè)試再測(cè)試。

不僅僅是單元測(cè)試,你應(yīng)該進(jìn)行全面測(cè)試(test pyramid)。

不要直接使用: sudo node app.js

很多人使用超級(jí)用戶(hù)權(quán)限運(yùn)行Node應(yīng)用,不是嗎?因?yàn)樗麄兿M麘?yīng)用程序直接偵聽(tīng)80或443端口(注* http和https的默認(rèn)端口)

這一點(diǎn)是不對(duì)的,進(jìn)程中的任何一個(gè)錯(cuò)誤/漏洞都將讓整個(gè)系統(tǒng)宕機(jī),然后你就什么也干不了。

所以你應(yīng)該使用一個(gè)HTTP反向代理服務(wù)去轉(zhuǎn)發(fā)這些請(qǐng)求。可以用nginx, Apache 你看著辦。

避免命令(shell command)注入

下面的代碼段有什么問(wèn)題?

child_process.exec("ls", function (err, data) {  
    console.log(data);
});

child_process.exec 命令調(diào)用的是 /bin/sh, 它啟動(dòng)了一個(gè)解釋器,而非程序。

這是有問(wèn)題的,當(dāng)該方法執(zhí)行用戶(hù)輸入的一個(gè)方法,比于一個(gè)反引號(hào)或$()中的內(nèi)容,一個(gè)新的命令就可能被攻擊者注入。

為了避免這個(gè)問(wèn)題,你只需要使用child_process.execFile。詳解。

臨時(shí)文件

創(chuàng)建文件時(shí),如處理上傳的文件格外注意。這些文件可以輕松吃掉你所有的磁盤(pán)空間。

為了解決這個(gè)問(wèn)題,你應(yīng)該使用Streams。

加密你的Web應(yīng)用

不光是Node-所有的Web應(yīng)用程序都應(yīng)該加密。(注* https)

跨站腳本攻擊(Reflected Cross Site Scripting)

發(fā)生這種情況時(shí),攻擊者注入可執(zhí)行代碼的HTTP響應(yīng)。一個(gè)應(yīng)用程序容易受到這種類(lèi)型的攻擊,它會(huì)在客戶(hù)端執(zhí)行未驗(yàn)證的腳本(主要是用Javascript寫(xiě)的)。它使攻擊者能夠竊取cookie,剪貼板的內(nèi)容或修改頁(yè)面本身。

比如

http://example.com/index.php?user=

如果這條用戶(hù)查詢(xún)未經(jīng)過(guò)驗(yàn)證直接插入到DOM(HTML)中,它就會(huì)被執(zhí)行。

怎么避免

永遠(yuǎn)不要往DOM中插入不可信的數(shù)據(jù)
在插入前去除HTML

防止Cookie被盜

默認(rèn)情況下,Cookie可以通過(guò)Javascript在同一個(gè)域中讀取。這樣可能會(huì)被跨站點(diǎn)腳本攻擊。而且它們還有可能被第三方的JavaScript庫(kù)閱讀。

例如

var cookies = document.cookie.split("; ");
怎樣避免

為了防止這種情況,你可以在Cookies上使用HttpOnly,這個(gè)標(biāo)簽可以讓JavaScript無(wú)法讀取這個(gè)cookie。 (注* 比如服務(wù)器端用到的Cookie)

內(nèi)容加密策略

內(nèi)容安全策略(CSP)是一個(gè)附加的安全層,幫助檢測(cè)和緩解某些類(lèi)型的攻擊,包括跨站點(diǎn)腳本(XSS)和數(shù)據(jù)注入攻擊。

CSP可以通過(guò) Content-Security-Policy 被啟用。

比如:

Content-Security-Policy: default-src "self" *.mydomain.com

注* CSP的更多內(nèi)容

這個(gè)header頭信息將只接收信任的域名及其子域名的發(fā)過(guò)來(lái)的內(nèi)容。

跨站請(qǐng)求偽造 (Cross-Site Request Forgery)

CSRF是一種迫使終端用戶(hù)在他目前已驗(yàn)證授權(quán)的Web應(yīng)用程序中執(zhí)行其它的actions。

這時(shí)侯問(wèn)題就可能發(fā)生了,因?yàn)閏ookie也會(huì)發(fā)送到被請(qǐng)求的網(wǎng)站(此網(wǎng)站你已經(jīng)被授權(quán)) - 即使當(dāng)這些請(qǐng)求來(lái)自不同的位置。

例如


    

注* 此頁(yè)面在另外一個(gè)域名中

這樣會(huì)直接導(dǎo)致這個(gè)用戶(hù)信息被刪除。

怎樣阻止

為了防止CSRF,您應(yīng)該實(shí)現(xiàn)同步令牌模式 - 幸運(yùn)的是,node社區(qū)已經(jīng)幫你做了。下面是它的工作原理:

當(dāng)發(fā)起一個(gè)GET請(qǐng)求時(shí),服務(wù)器檢查你的CSRF令牌 - 如果它不存在,創(chuàng)建一個(gè)
當(dāng)用戶(hù)顯示輸入時(shí),確保添加一個(gè)隱藏的CSRF令牌值
當(dāng)Form表單提交時(shí),確保該值與該表單與Session中的內(nèi)容相匹配


via ourjs
原文

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/11149.html

相關(guān)文章

  • 《網(wǎng)絡(luò)黑白》一書(shū)所抄襲文章列表

    摘要:網(wǎng)絡(luò)黑白一書(shū)所抄襲的文章列表這本書(shū)實(shí)在是垃圾,一是因?yàn)樗幕ヂ?lián)網(wǎng)上的文章拼湊而成的,二是因?yàn)槠礈愃教睿B表述都一模一樣,還抄得前言不搭后語(yǔ),三是因?yàn)閮?nèi)容全都是大量的科普,不涉及技術(shù)也沒(méi)有干貨。 《網(wǎng)絡(luò)黑白》一書(shū)所抄襲的文章列表 這本書(shū)實(shí)在是垃圾,一是因?yàn)樗幕ヂ?lián)網(wǎng)上的文章拼湊而成的,二是因?yàn)槠礈愃教睿B表述都一模一樣,還抄得前言不搭后語(yǔ),三是因?yàn)閮?nèi)容全都是大量的科普,不涉及技術(shù)...

    zlyBear 評(píng)論0 收藏0
  • 進(jìn)攻即是最好御!19個(gè)練習(xí)黑客技術(shù)在線網(wǎng)站

    摘要:進(jìn)攻即是最好的防御個(gè)練習(xí)黑客技術(shù)的在線網(wǎng)站進(jìn)攻即是最好的防御,這句話(huà)同樣適用于信息安全的世界。社區(qū)有接近萬(wàn)的注冊(cè)會(huì)員也是最大的一個(gè)黑客社區(qū)之一。 進(jìn)攻即是最好的防御!19個(gè)練習(xí)黑客技術(shù)的在線網(wǎng)站 進(jìn)攻即是最好的防御,這句話(huà)同樣適用于信息安全的世界。這里羅列了19個(gè)合法的來(lái)練習(xí)黑客技術(shù)的網(wǎng)站,不管你是一名開(kāi)發(fā)人員、安全工程師、代碼審計(jì)師、滲透測(cè)試人員,通過(guò)不斷的練習(xí)才能讓你成為一個(gè)優(yōu)秀安...

    tracy 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

閱讀需要支付1元查看
<