我正在开发一个实时分析应用程序,并且正在使用 websockets(通过 socket.io 库)和 nodejs。不会有通过 websocket 发送的“敏感”数据(如姓名、地址等)。它将仅用于跟踪访问和总访问者(以及访问量最大的 10 个 URL 上的访问者数量)。
是否有任何我应该注意的安全问题?我是否敞开心扉:
- DoS 攻击?
- XSS 攻击?
- 可用于访问网络服务器/网络服务器的 LAN 的其他安全漏洞?
- 还有什么我没有在这里提到的吗?
谢谢!
最佳答案
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, '<')
.replace(/>/g, '>')
.replace(/"/g, '"');
}
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 发送。您还应该想出某种身份验证方案...
- 也许您可能容易受到 session 固定的影响?
关于security - Websockets、socket.io、nodejs 和安全性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6362585/