【问题标题】:Symfony3 auditing controllersSymfony3 审计控制器
【发布时间】:2016-05-27 12:34:51
【问题描述】:

我试图在 symfony3 的控制器中实现安全审计。与https://github.com/simplethings/EntityAudit中的EntityAudit类似的要求

案例说明:/{_locale}/introduction.{_format} 页面具有访问权限,需要将以下信息记录到数据库表中。 一种。使用的语言环境 湾。要求的格式 C。是匿名请求或授权为 d。请求时间

同时,“计数器”表增加控制器的请求“命中计数器”。

最佳实践是什么,只需几行代码或参考文档就足够了。

【问题讨论】:

    标签: security audit symfony


    【解决方案1】:

    我更喜欢使用EventListener,它会占用更少的空间。

    使用EventListener 是以下情况的最佳做法。发送电子邮件到审计、跟踪信息、日志记录、异常、API 订阅等。

    因此您可以向您的services.yml 添加一个侦听器,如下所示。

    acme.demo.listener.your_listener:
        class: Acme\DemoBundle\EventListener\YourListener
        tags:
            - { name: kernel.event_listener, event: kernel.request, method: onKernelRequest }
    

    请查看更多详细信息。 http://symfony.com/doc/current/cookbook/event_dispatcher/event_listener.html

    使用以下用户是匿名用户还是经过身份验证的用户:

    Symfony\Component\Security\Core\Authentication\Token\AnonymousToken;

    Symfony\Component\Security\Core\Authentication\Token\Storage\TokenStorageInterface;
    

    您可以从事件请求中获取语言环境

    Symfony\Component\HttpKernel\Event\GetResponseEvent;
    

    对于格式,GetResponseEvent 的请求对象上有一个方法getRequestFormat()。 RequestTime 只是 new \DateTime()

    所以一切都会好起来的。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-05-15
      • 1970-01-01
      • 1970-01-01
      • 2018-03-23
      • 1970-01-01
      • 1970-01-01
      • 2017-07-24
      相关资源
      最近更新 更多