概述从PHP / Java / Python Web应用程序中调用shell命令(包括那些需要root权限的)的正确方法是什么?
我期待开发一个远程系统pipe理Web应用程序(例如Webmin)。 显然,我将需要调用shell命令来执行由root或另一个特定的非nobody用户发出。
什么是这项任务的一般准则?
我现在唯一想到的解决scheme就是在一个特殊的端口上运行Web服务器,这个端口只能通过防火墙进行访问,只能访问本地和VPN连接的用户。 但是,也许有一些特殊的技巧可以保护这样的应用程序,即使它暴露在公共networking?
如何使用windows安全描述符来防止执行其他应用程序?
哪个服务帐户适合?
在数字签名服务器上存储私钥的位置?
如何摆脱Batch / Powershell中的安全警告
如何执行windows身份valIDation?
在生产环境中保护密码
我如何只允许pipe理员在windows中closures程序
我如何强制Java Web Start运行自签名的JNLP?
为用户(S4U)令牌创build服务
WMI – 双向authentication
由于我们正在讨论控制本地任务的Web应用程序,因此您需要考虑几个方面(至少对于Java而言,通常是针对每个设计良好的解决方案):
使用异步模型执行本地任务,因为其中的一些可能需要相当长的时间,并且在浏览器中,用户不知道机器或互联网是否有问题,或者其他什么。
不要直接使用Java Runtime#exec()直接导致事情不能正常工作或出错,或者让代码在各种机器上表现不同,或者至少小心使用它们:请参阅JavaWorld有关可能的陷阱的文章 。
如果可以将应用程序分为两部分 :web应用程序和执行任务(并与web应用程序安全通信)的“无头代理”。 通过这种方式,您可以使用一个Web应用程序来控制多台机器(只安装“代理程序”),当机器出现问题时,Web应用程序仍然可以响应,并可能启动所需的恢复步骤。
当运行在同一台计算机上时(web应用程序和具有可执行命令的代理程序),如果应用程序“在脚下自行启动”,则需要“备份计划”,从而影响您对机器的访问。
总结
以上是内存溢出为你收集整理的从PHP / Java / Python Web应用程序中调用shell命令(包括那些需要root权限的)的正确方法是什么?全部内容,希望文章能够帮你解决从PHP / Java / Python Web应用程序中调用shell命令(包括那些需要root权限的)的正确方法是什么?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
请登录后查看评论内容