1

Я удалил все виды использования eval и new Function из устаревшего хром-расширения, которое я поддерживаю. Как мне обновить раздел content_security_policy в моем manifest.json?Как удалить небезопасный-eval из содержимого расширения chrome content_security_policy

В настоящее время это выглядит следующим образом:

{ 
    "content_security_policy": "script-src 'self' 'unsafe-eval' https://app.xyz.com; object-src 'self'" 
} 

Если я понимаю ПЕС в расширении хрома правильно, после того, как я удалил все eval и new Function вызовов из кода расширения я могу удалить unsafe-eval из manifest.json

ответ

1

Eval и связанные функции отключены. [Но] политика против eval() и его относительная new Function(String) может быть ослаблено путем добавления 'unsafe-eval' к политике

Это означает, что код, используя eval и new Function будет работать только если у вас есть

"content_security_policy": "script-src 'self' 'unsafe-eval'; object-src 'self'" 

в вашем манифест.

Попробуйте взять эту линию из манифеста и запустить расширение. Если все по-прежнему работает так, как ожидалось, вы можете удалить эту политику из своего манифеста, так как вы правильно удалили все отключенные функции.


Link to CSP

Примечание: Вы должны удалить все необходимые функции, связанные с eval (как описано here).

подобный код не работает:

window.setTimeout("alert('hi')", 10); 
window.setInterval("alert('hi')", 10);