如何通过JQuery修复CWE 117(日志的不正确输出中和)

问题描述 投票:1回答:1

扫描抛出有关此行的错误:

console.log(msg);

我的代码中需要此行,但我想更改为更安全。我将此添加到我的代码中:

var newMsg = msg.replace('\n', '_').replace('\r', '_');

然后我将newMsg发送到日志。我看到这还不够,我读到有时应该对消息进行编码。什么时候应该编码,如何在javascript / jQuery中编码?

谢谢

javascript jquery security encode
1个回答
0
投票

要摆脱CWE 117(在生产环境中进行原始价值日志打印),您应该在MITRE的specification上执行缓解措施,这是:

INPUT VALIDATION代码(在日志打印之前)应:

  • 禁止内容(特定于业务逻辑)
  • 转义HTML内容:

    输入:<p>Hello <script>this_is_bad_code</script> world!</p>

    输出:&lt;p&gt;Hello &lt;script&gt;this_is_bad_code&lt;/script&gt; world!&lt;/p&gt;

  • 条带内容:

    输入:<p>Hello <script>this_is_bad_code</script> world!</p>

    输出:Hello world!

  • 清除内容以获取安全的html(特定于业务逻辑):

    输入:<p>Hello <script>this_is_bad_code</script> world!</p>

    输出:<p>Hello world!</p>

OUTPUT DECODING:这是js中的一个破旧代码,因为js源文件可以进行任何编码,JavaScript会在执行之前将其转换为UTF-16,仍然可以:

  • 检查当前页编码标签值是否在标题中:Content-Type: application/javascript; charset=utf-8

  • 检查源js编码标签值是否为up:<script src="./source.js" charset="utf-8">

© www.soinside.com 2019 - 2024. All rights reserved.