2011-06-15 61 views
11

我正在研究一個實時分析應用程序,並使用websockets(通過socket.io庫)和nodejs。不會有通過websockets發送的「敏感」數據(如姓名,地址等)。它僅用於跟蹤訪問量並跟蹤訪問者總數(以及訪問前10位訪問量最高的URL的訪問者數量)。Websockets,socket.io,nodejs和安全

我應該知道哪些安全問題?我是否打開自己達到:

  1. 拒絕服務攻擊?
  2. XSS攻擊?
  3. 可以用來訪問網絡服務器/網絡服務器LAN的其他安全漏洞?
  4. 還有什麼我沒有在這裏提到?

謝謝!

回答

9

1. DoS attacks?

您正在打開自己了對DoS攻擊,以及它們是否處理得當,幾乎可以做針對此類攻擊一無所獲。

2. XSS attacks?

如果不進行過濾,你很容易受到XSS攻擊。我相信你可以保護自己免受此使用的東西看起來像this

/** 
* Escape the given string of `html`. 
* 
* @param {String} html 
* @return {String} 
* @api private 
*/ 

function escape(html){ 
    return String(html) 
    .replace(/&(?!\w+;)/g, '&') 
    .replace(/</g, '&lt;') 
    .replace(/>/g, '&gt;') 
    .replace(/"/g, '&quot;'); 
} 
3. Additional security holes that could be used to gain access to the 
webserver/webserver's LAN? 

你應該保護自己免受使用防火牆LAN攻擊?

4. Anything else I didn't mention here?

  • 如果要發送敏感信息,你至少應該發過來的SSL。你也應該想出一些認證方案......
  • 也許你可能會受到會話固定?
+1

感謝您的反饋。我能否問我到底會如何讓自己面對DoS攻擊?我知道他們在很多情況下都是可能的,我只關心使用websockets帶來的額外風險。幸運的是,我只會發送跟蹤數據回來和第四(可能是一個數字或某種動態計數器......我還沒有想過),所以我不認爲我必須過濾的東西。而且,用戶無法將數據輸入到WebSocket中。 WebSocket僅在用戶加載頁面(用於跟蹤)時使用。 – Aaron 2011-06-15 20:41:38

+2

當dos攻擊完全由一個非常大的僵屍網絡執行時,幾乎沒有任何事情可以對抗它。即使是大的網站,例如(我相信他們被擊中)貝寶,amazone不能做任何反對這個。我不確定是否還有其他風險。如果輸出(發送到瀏覽器)不是來自用戶(確保丟棄用戶的所有輸入),那麼您可以安全地抵禦XSS攻擊。 – Alfred 2011-06-15 20:56:50

+0

再次感謝您的寶貴意見:) – Aaron 2011-06-15 21:02:19