2

我正在使用Empythoned生成的 javascript创建一个 chrome扩展。Pythonimport不能在 chrome 扩展中工作,而它在 Web 应用程序中工作。这是演示

示例代码:

网络应用

输入

import collections
print collections

输出

<module 'collections' from '/lib/python2.7/collections.py'>

Chrome 扩展程序

输入

import collections

输出

Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/lib/python2.7/collections.py", line 8, in <module>
from _collections import deque, defaultdict
ImportError: Could not evaluate dynamic lib: //lib/python2.7/_collections.so

它与 chrome 扩展处理 JS 有关吗?

4

1 回答 1

1

Empythoned 正在尝试eval()编码,Chrome 默认限制eval()在扩展中使用。

可以在此处找到有关内容安全策略的更多详细信息:

https://developer.chrome.com/extensions/contentSecurityPolicy

如果您将这一行放松安全策略添加到您的扩展中manifest.json,您应该能够导入这些模块:

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

正如文档所警告的那样,eval()这是一个臭名昭著的 XSS 攻击媒介,因此在您的扩展中允许它时应该小心。

于 2014-06-18T09:44:09.130 回答