Websockets,socket.io,nodejs和安全性

Aar*_*ron 11 security html5 websocket node.js socket.io

我正在开发一个实时分析应用程序,并使用websockets(通过socket.io库)和nodejs.将不会通过websockets发送"敏感"数据(如名称,地址等).它仅用于跟踪访问次数并跟踪总访问者数(以及访问量最多的前10个访问者网址中的访问者数量).

我应该注意哪些安全问题?我打开自己:

  1. DoS攻击?
  2. XSS攻击?
  3. 可用于访问网络服务器/网络服务器局域网的其他安全漏洞?
  4. 还有什么我在这里没有提到的吗?

谢谢!

Alf*_*red 9

1. DoS attacks?

你正在打击自己的DoS攻击,如果它们正确完成,你几乎无法对付这种攻击.

2. XSS attacks?

如果不进行过滤,则易受XSS攻击.我相信你可以使用这样的东西保护自己免受这种情况:

/**
 * 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;');
}
Run Code Online (Sandbox Code Playgroud)
3. Additional security holes that could be used to gain access to the
webserver/webserver's LAN?
Run Code Online (Sandbox Code Playgroud)

您应该使用防火墙保护自己免受局域网攻击?

4. Anything else I didn't mention here?

  • 如果您要发送敏感信息,则至少应通过SSL发送.您还应该提出某种身份验证方案......
  • 也许你可能容易受到会话固定的影响?

  • 有一类DoS攻击可能因糟糕的设计而加剧.如果相对少量的流量导致大量工作并且您成为cpu或数据库io绑定,则您遇到麻烦.http/tcp过载是不可阻挡的......打电话给你的上游提供商;-) (3认同)
  • 当dos攻击通过例如非常大的僵尸网络完美地执行时,几乎没有任何东西可以对付它.即使是大型网站,例如(我相信他们受到了打击)paypal,amazone对此无能为力.我不确定是否有任何额外的风险.如果输出(发送到浏览器)不是来自用户(确保丢弃用户的所有输入),则可以安全地防止XSS攻击. (2认同)