security - 如何使用 WScript.Shell 对象调试 ASP 权限问题?

标签 security asp-classic vbscript iis-6 permissions

我必须从一些旧的 ASP 应用程序运行命令行操作。

这是我的代码:

<%
    cmd = "%comspec% /c echo Hello"    

    set wsh = CreateObject("WScript.Shell")
    ireturn = wsh.Run(cmd, 0, true)
    set wsh = nothing
%>

这是我收到的结果:

Microsoft VBScript runtime error '800a0046'

Permission denied

/test.asp, line 6



您知道如何使 IIS6 运行此代码吗?

注意:当然我不必运行 echo 命令,但我想排除问题的任何其他原因。

更新:我尝试了 tomalaks 提到的大多数事情,但没有任何帮助。也许我可以稍微改变一下问题。 我该如何调试这个问题?

最佳答案

ASP 通常被拒绝访问任何有潜在危险的东西,例如 cmd.exe。检查 cmd.exe 上的文件权限,看看这是否适合您(我想是的)。

如果您确实必须使用 cmd.exe 来执行部分页面处理,请更改 cmd.exe 上的文件权限(不推荐用于面向 Internet 的 Web 服务器),或者确保 ASP 页面运行未拒绝的凭据访问该文件。

要实现这一点,请使用 IIS 管理控制台删除对 ASP 页面的“匿名访问”并改用 Windows 集成身份验证(如果可行),或保留“匿名访问”并输入一组固定的应使用的凭据默认的“IUSR_...”。

或者,如果您仅使用 cmd.exe 来启动向 STDOUT 输出某些内容的程序,则可以尝试直接启动该程序,而无需将其包装在 cmd.exe 调用中。同样,运行 ASP 页的用户需要访问该程序的可执行文件。

关于security - 如何使用 WScript.Shell 对象调试 ASP 权限问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/897293/

相关文章:

水平对齐框的 CSS 问题

windows - 获取远程服务器环境变量

python - 安全删除内存中的密码 (Python)

asp-classic - 服务器端 javascript - 经典 asp

javascript - 这可以被视为安全漏洞吗?

asp-classic - 获取页面的当前 url(使用 URL Rewrite)

vbscript - 带参数的 Shell.Run

vbscript - 根据 .txt 文件中的文本在 "MSWord"文档中创建表

security - Jasper 报告安全沙箱

security - bcrypt 如何具有内置盐?