2

Empythonedによって生成された javascript を使用して、chrome extensionを作成しています。Pythonimportは、Web アプリケーションでは機能するのに、Chrome 拡張機能では機能しません。これがデモです。

サンプルコード:

ウェブアプリ

入力

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

JS を処理する chrome 拡張機能と関係がありますか?

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 に答える