NLog - 如何解密日志文件

Pet*_*ofi 4 c# encryption nlog

我登录了我的网站,我想对日志文件进行加密。要加密日志文件,我只需将属性fileAttributes="Encrypted" 添加到配置文件中,您如何在此处看到:

    <target name="file" xsi:type="File"
        layout="${longdate} | ${pad:padding=-5:inner=${level:uppercase=true}} | ${message} ${onexception:inner=${newline}   ${exception:format=ToString}}"
        fileName="${basedir}/Log/log_info.log"
        fileAttributes="Encrypted"
        archiveFileName="${basedir}/Log/log_info_{#}.log"
        archiveAboveSize="1048576"
        archiveNumbering="Rolling"
        maxArchiveFiles="2"
        concurrentWrites="true"
        keepFileOpen="false" />
Run Code Online (Sandbox Code Playgroud)

问题:如何解密文件以查看日志记录?

Han*_*ant 5

NLog 不会对文件本身进行加密,它只是要求操作系统处理它。在 .NET 中使用FileOptions.Encrypted枚举值公开。谁的评论很好地描述了它的作用:

表示文件已加密,只能使用与加密相同的用户帐户进行解密。

“同一个用户帐户”是最典型的挂断,IIS 通常使用它自己的帐户运行,详细信息在这个现有的 Q+A中有很好的介绍此 MSDN 页面中详细介绍了操作系统实现。

在 Web 服务器上使用此选项应该稍作停顿。唯一可以轻松读取日志文件的人是从外部破坏机器的攻击者。他阅读文件没有任何问题,因为他使用的是 IIS 帐户,所以它的内容很容易以明文形式获得。人民群众需要的日志文件,以阻止此类攻击者将有一个相当困难的时间阅读文件,因为他们会用自己的帐户来访问机器。

这不是理想的安全实践。