From 9e254ccd2b85eb72cd40ecef36a4b937c13e3dfb Mon Sep 17 00:00:00 2001 From: Jordan Cannon Date: Fri, 21 Aug 2020 02:43:42 -0500 Subject: [PATCH] Sandbox execution of JavaScript with vm2 (#463) * Sandbox execution of JavaScript with vm2 * Encode js to base64 This prevents executing code in the global context by inserting extra backticks i.e. eval_in_node('`+console.log(process.env)+`'). * Include node_modules/ in python module * Set NODE_PATH so embedded node_modules is found --- anime_downloader/extractors/streamango.py | 2 +- anime_downloader/node_modules/.bin/vm2 | 1 + .../node_modules/vm2/.eslintignore | 1 + .../node_modules/vm2/.eslintrc.js | 19 + .../node_modules/vm2/CHANGELOG.md | 142 +++++++ anime_downloader/node_modules/vm2/LICENSE.md | 9 + anime_downloader/node_modules/vm2/README.md | 389 ++++++++++++++++++ anime_downloader/node_modules/vm2/bin/vm2 | 3 + anime_downloader/node_modules/vm2/index.d.ts | 198 +++++++++ anime_downloader/node_modules/vm2/index.js | 3 + .../node_modules/vm2/package.json | 72 ++++ anime_downloader/package-lock.json | 13 + anime_downloader/package.json | 26 ++ anime_downloader/sites/twistmoe.py | 2 +- anime_downloader/util.py | 12 +- setup.py | 5 + 16 files changed, 892 insertions(+), 5 deletions(-) create mode 120000 anime_downloader/node_modules/.bin/vm2 create mode 100644 anime_downloader/node_modules/vm2/.eslintignore create mode 100644 anime_downloader/node_modules/vm2/.eslintrc.js create mode 100644 anime_downloader/node_modules/vm2/CHANGELOG.md create mode 100644 anime_downloader/node_modules/vm2/LICENSE.md create mode 100644 anime_downloader/node_modules/vm2/README.md create mode 100755 anime_downloader/node_modules/vm2/bin/vm2 create mode 100644 anime_downloader/node_modules/vm2/index.d.ts create mode 100644 anime_downloader/node_modules/vm2/index.js create mode 100644 anime_downloader/node_modules/vm2/package.json create mode 100644 anime_downloader/package-lock.json create mode 100644 anime_downloader/package.json diff --git a/anime_downloader/extractors/streamango.py b/anime_downloader/extractors/streamango.py index 0d766aa..af84d27 100644 --- a/anime_downloader/extractors/streamango.py +++ b/anime_downloader/extractors/streamango.py @@ -19,7 +19,7 @@ class Streamango(BaseExtractor): r'