c# – 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" />

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

解决方法:

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

Indicates that a file is encrypted and can be decrypted only by using the same user account used for encryption.

“相同的用户帐户”是最典型的挂断,IIS通常使用自己的帐户运行,详细信息在this existing Q+A中有详细说明.操作系统实现在this MSDN page中详细介绍.

在Web服务器上使用此选项应该稍微停顿一下.唯一能够轻松阅读日志文件的人是从外部危害机器的攻击者.他阅读文件没有任何问题,因为他使用的是IIS帐户,所以内容很容易以明文形式提供.需要日志文件来阻止此类攻击者的人将非常难以阅读该文件,因为他们将使用自己的帐户来访问该计算机.

这不是一种理想的安全措施.

上一篇:排序算法总结


下一篇:c# – 使用NLog在.NET中记录方法的进入和退出