我要求Web脚本执行exe文件然后返回结果 关于exe请求。
我可以回显exe的结果或者修改exe以将结果保存到文件中,然后读取文件以回显Web请求。
问题是在IIS下使用php所有exec()shell_execute()system()类型函数错误输出'无法分叉',因为IIS匿名用户IUSER_%COMPUTER_NAME%无法访问C:\ windows \ SYSTEM32 \ cmd.exe的
可以通过更改此IIS匿名用户对cmd.exe的权限来解决此问题 这是显着的安全弱化(我相信)。
有没有办法可以通过IIS脚本调用Exe而无需向IIS匿名用户打开cmd.exe?
帮助表示赞赏。
为什么我需要这样做?我有一个串行密钥生成器,当somone通过信用卡购买我的产品时,我的支付处理器需要调用一个URL,将许可证名称作为参数传递,并返回该许可证名称的序列号。
我的许可证密钥生成器是WinLicense,我有一个exe。
我需要运行像
这样的东西shell_exec(“C:\ inetpub \ wwwroot \ test.com \ testLicense.exe \”“。$ regName。”\“”); //或exec()或system()
(testLicense.exe将结果存储在我的php脚本可以回显的文件中)
答案 0 :(得分:2)
非常小心地过滤您提供给exec()的变量。
仅将整数用于数字信息
如果是文件名,请使用file_exists()确认它是真实的文件名
如果它是一个字符串使用正则表达式并删除像'和'和\和;这样的任何命令都不会运行。