问题描述
||
我正在开发一个实时分析应用程序,并且正在使用websockets(通过socket.io库)以及nodejs。将不会通过网络套接字发送任何“敏感”数据(例如名称,地址等)。它将仅用于跟踪访问和跟踪总访问者(以及访问量最高的10个URL上的访问者数量)。
我应该注意任何安全问题吗?我是否愿意接受:
DoS攻击?
XSS攻击?
可以用于访问Web服务器/ Web服务器的LAN的其他安全漏洞吗?
我在这里没有提到什么?
谢谢!
解决方法
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,\'<\')
.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发送。您还应该提出某种身份验证方案...
也许您可能容易受到会话固定的限制?