0

我有一个聊天网站。这是一个非常标准的 IRC 风格聊天,可以在您的浏览器中使用。我希望允许用户创建和上传可以增强聊天体验的应用程序。应用程序的一个示例是问答游戏。用户可以通过发布聊天消息来使用它,例如/addtriviaquestion "foo".

我坚持的技术问题是我如何在执行用户代码的同时防止它是恶意的。

我的网站是用 django/python 构建的。我很想为这些应用程序使用 javascript。例如,琐事模块可以这样工作:

register.command('/addtriviaquestion', function() {foo;});
register.command('/answerquestion', function() {foo;});

任何人都知道如何让 python 执行这个被监禁和不受信任的 javascript?

4

1 回答 1

1

也许您可以使用执行 javascript 的 phantomjs http://code.google.com/p/phantomjs/来获取由 javascript 生成的 html,如这篇文章http://inka-labs.com/es/blog/2012/ 05/24/get-executed-html/然后用 BeautifulSoup 清理代码,问题是结果不再是动态 HTML。另一个想法是让上传的代码在具有不同域的 iframe 上运行,在这种情况下,默认浏览器 iframe 安全性会阻止 iframe 脚本修改其父元素的任何尝试。

于 2012-06-03T01:21:38.913 回答