我登录了我的网站,我希望加密日志文件.要对日志文件进行加密,我只需将属性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帐户,所以内容很容易以明文形式提供.需要日志文件来阻止此类攻击者的人将非常难以阅读该文件,因为他们将使用自己的帐户来访问该计算机.
这不是一种理想的安全措施.