如何阻止脚本的所有网络访问?

时间:2011-10-20 22:55:42

标签: python c sandbox

假设我有一个用Python或Ruby编写的脚本,或用C编写的程序。我如何确保脚本无法访问网络功能?

3 个答案:

答案 0 :(得分:5)

你或多或少通过用“沙盒”标记它来给出一个通用答案,因为这就是你需要的东西,某种沙盒。我想到的是:使用在JVM上运行的JPython或JRuby。在JVM中,您可以使用策略文件创建沙箱,因此JVM中的代码不能执行您不允许的操作。

对于C代码,它更难。蛮力的答案可能是在没有网络功能的虚拟机中运行您的C代码。我现在真的没有更优雅的答案。 :)

答案 1 :(得分:2)

除非您使用沙盒版本的Python(例如使用PyPy),否则没有可靠的方法来从脚本本身关闭网络访问。当然,您可以在关闭网络访问权限的VM下运行。

答案 2 :(得分:0)

防火墙可以阻止特定应用程序或进程访问网络。 ZoneAlarms是一个很好的,我过去常常做你想要的。所以它可以以编程方式完成,但我不太了解OS编程,以提供有关如何去做的任何建议。