首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >用户提交的代码演示区域的安全防范措施和技术

用户提交的代码演示区域的安全防范措施和技术
EN

Stack Overflow用户
提问于 2010-03-26 18:10:21
回答 4查看 274关注 0票数 0

也许这不太可行。但基本上,我一直在开发一个片段分享网站,我希望它有一个‘现场演示区’。

例如,您正在浏览一些片段并单击Demo按钮。弹出一个执行web代码的新窗口。

我知道这样做涉及到无数的安全风险-- XSS、标签、恶意软件/下载驱动、pr0n等等。

社区将能够标记那些公然淘气的提交材料,但很明显,有些人会不被发现(而且,在许多情况下,必须有人成为受害者才能发现提交的任何肮脏的东西)。

因此,我需要知道:我应该做什么--安全方面--以确保用户可以提交代码,但不能运行任何恶意代码,或者在场外执行等等?

关于您的信息,我的网站是由PHP支持使用CodeIgniter。

杰克

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2010-03-26 19:29:36

正如Frank指出的,如果您想要保持高级别的安全性,请使用白名单技术。当然,这是有代价的(可能限制性太强,难以实现)。

另一种途径是发展黑名单技术。也就是说,只允许没有触发任何铃铛的代码。这更容易,因为您必须指定更少的东西,但它不会捕获新的漏洞。

这两种技术在网络上都有很多可用的信息。

依赖CodeIgniters安全功能(XSS、过滤等)不会让你走得太远,因为大部分的片段都不会被允许通过。

不管你做什么,你都要记住这一点:

不要认为恶意代码只会伤害你网站的访问者。它还可以通过解析器/代码检查器来危害您的服务器。例如,让我们假设Alice上传片段foo。Alice有意制作代码片段,这样您的解析器就会因为XSS漏洞而将其标记为恶意。让我们说,您的解析器还用恶意代码段更新数据库,以供进一步研究。爱丽丝知道这个。随着XSS的利用,Alice在代码段中注入了一些SQL代码,所以当您将代码片段插入数据库时,它将做各种各样的坏事。

如果你真的疑神疑鬼,你可以有一个孤立的服务器,它的唯一责任是检查代码片段。因此,在WCS中,只有低风险服务器才会受到危害,您将有(希望)足够的时间来修复/审计这种情况。

希望这能有所帮助。

票数 1
EN

Stack Overflow用户

发布于 2010-04-01 13:42:14

你不能白名单或黑名单PHP,它只是不工作。如果您列出了我可以使用的命令列表,或者阻止我使用恶意函数,那么什么才能阻止我编写:

代码语言:javascript
运行
复制
$a = 'mai';

{$a .'l'}('somebody@important.com', 'You suck', 'A dodgy message sent from your server');

您不能使用白名单或黑名单PHP.

票数 1
EN

Stack Overflow用户

发布于 2010-03-26 23:09:53

作为您的信息,我的站点是使用CodeIgniter支持的

对不起,杰克,如果你认为这与这个问题有一点关系,那么你离理解这个问题的任何有效答案还有很长的路要走--更别说能够分辨出无效的答案了。

您创建的任何沙箱将防止有人攻击您的机器或您的客户将是如此的限制性,您的客户将无法做更多的‘打印’。

您需要在定制的chroot监狱上运行suhosin的CLI版本--并且为每个脚本维护单独的环境是完全不切实际的。

结果表明,C.

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2525656

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档