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

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

我已经阅读了如何通过使用匿名函数使用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)

但这显然不会起作用!我想我只是睡眠不足,但有人能指出我正确的方向!

javascript content-security-policy
1个回答
1
投票

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

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

$ = function (a) {
  return /^f/.test(typeof a) 
    ? /in/.test(b.readyState) 
      ? setTimeout(function() { $(a); }, 9) 
      : a() 
    : new i(a);
};
© www.soinside.com 2019 - 2024. All rights reserved.