[NLog] 使用 replace 去避免 Log forging 攻擊
在大數據時代,駭客可能以 Log forging 的方式,讓系統的日誌填入錯誤的內容,讓後續在做日誌分析時誤判。
使用 NLog 只要簡單的做一個 replace 設定即可
<variable name="messagelayout" value="${message} ${exception:format=ToString}"/>
<variable name="messagelayout_inline" value="${replace:inner=${messagelayout}:searchFor=[\\r\\n]+:replaceWith=`:regex=true}"/>
<target xsi:type="File" name="operation" fileName="${basedir}/logs/${shortdate}/operation.log"
layout="${messagelayout_inline}" />
參考: