如何避免内容安全政策中的不安全评估

时间:2018-08-31 21:57:41

标签: javascript content-security-policy

由于使用匿名功能使用setTimeout,我已经阅读了如何解决内容安全策略中unsafe eval所需的答案。

但是我使用的脚本包含以下内容:-

$ = function (a) {
return /^f/.test(typeof a) ? /in/.test(b.readyState) ? setTimeout('$('+a+')', 9) : a() : new i(a)
}

我一生都无法解决如何将其转换为使用匿名函数的脚本,或者是否有办法重写它。

如果您需要查看更多代码,则该代码是ki.js的一部分。

我尝试过

return /^f/.test(typeof a) ? /in/.test(b.readyState) ? setTimeout(function(){'$('+a+')'}, 9) : a() : new i(a)

但是那显然是行不通的!我认为我只是睡眠不足,但是有人可以指出正确的方向!

1 个答案:

答案 0 :(得分:1)

如果您要使用自己的匿名函数,则无需使用字符串引用。只需在其中使用普通代码即可。

(虽然不确定该内容安全策略,只是帮助语法。如果不能完全解决问题,我将删除答案并将其作为评论发布。)

$ = function (a) {
  return /^f/.test(typeof a) 
    ? /in/.test(b.readyState) 
      ? setTimeout(function() { $(a); }, 9) 
      : a() 
    : new i(a);
};
相关问题