如何安全地从前端Web客户端收集日志?

时间:2019-06-18 15:41:12

标签: frontend backend audit-trail audit-logging

我有一个Web应用程序,我需要安全地记录所有用户活动。我需要知道他们何时访问特定页面并采取特定操作,例如单击按钮。如果我让前端将此数据发送到后端,那么用户很容易阻止该请求被发送出去。我需要实现可靠。我曾考虑过将实现方式带到后端,但是端点是相当通用的,并不表示用户在前端采取的特定操作。我知道这确实是一个开放式问题,但是任何想法都会受到赞赏。

2 个答案:

答案 0 :(得分:0)

1。基本上,当需要记录前端层时,大多数时间,如slf4j,log4j2之类的库都应足以记录活动。您可能希望将记录器放置在servlet过滤器级别,然后将其部署为通常。

2。如果仍然希望更加安全,则可以使用诸如datadog之类的应用程序监视工具来捕获活动。

无论如何,前端类都必须与记录器挂钩。

答案 1 :(得分:0)

关于信息安全性,必须使用HTTPS连接来向服务器发送消息,因此不可能进行MITM攻击并且对数据进行编码。

为了提高可靠性,您可以使用Service Worker进行某种事件累积和发送。使用同一域进行日志记录将阻止业余用户阻止全局消息。诸如“通过隐秘性确保安全”之类的消息散列将使该服务免受内容正则表达式解决方案的影响。

关于服务器的滥用:据我所知,没有一个好的解决方案,因为应该始终对用户输入进行过滤和清理,所以人们只能期望该功能不会成为黑客攻击的目标。

让我们进行精神实验:有人从前端发现了数据流,并试图攻击该站点。如我所见,有几种方法可以做到这一点:

  1. DDOS在端点上,但它没有进行很多CPU限制的操作,尽管可以进行I / O限制,但是端点速率限制可以解决此问题。

  2. 格式错误的数据试图进行某种SQL注入。可以通过接受严格的规则和消息格式来解决此攻击。

  3. 格式错误的数据试图破坏服务的指标,但成为攻击目标会使站点成为某种大型服务,因此99.9%的指标计算可能会忽略那些分布异常值。

因此,主要的攻击媒介无法轻松地为黑客提供一些好处,尤其是当该服务是黑匣子时,对功能的任何攻击都变得毫无用处。