运行通过表单POST发送的VBscript代码

运行通过表单POST发送的VBscript代码,post,asp-classic,vbscript,Post,Asp Classic,Vbscript,我希望有一个经典的ASP页面,除了这次的VBscript之外,它的工作方式类似于JSFIDLE。换句话说,我需要显示vbscript代码的输出,这些代码使用POST从一个表单传递到一个页面 显然,response.write(request.form())不起作用,我甚至不知道如何实现。我可以看到脚本如何将表单输入写入一个单独的.asp页面(使用filesystemobject和writeline),然后加载该页面,但是有没有一种更优雅的方法,可以不为每个请求创建一个临时页面?您可以使用exec

我希望有一个经典的ASP页面,除了这次的VBscript之外,它的工作方式类似于JSFIDLE。换句话说,我需要显示vbscript代码的输出,这些代码使用POST从一个表单传递到一个页面


显然,
response.write(request.form())
不起作用,我甚至不知道如何实现。我可以看到脚本如何将表单输入写入一个单独的.asp页面(使用
filesystemobject
writeline
),然后加载该页面,但是有没有一种更优雅的方法,可以不为每个请求创建一个临时页面?

您可以使用execute()函数(不要与server.execute()混淆)

以下是一个例子:

<%
    if request.QueryString("task") = "execute" then
        Response.Write "Output: <hr />"
        Execute(Request.Form("VbScript"))
        Response.Write "<hr />"
    end if
%>
<form action="test.asp?task=execute" method="post">
<textarea name="VbScript" style="height: 100px">
x = 4 - 3
response.write x
</textarea>
<input type="submit" value="Execute" />
</form>

x=4-3
response.write x
然而,虽然这很有趣,但我想不出哪一次使用安全性不会成为主要问题


基本上是让用户完全访问您的服务器

您可以使用execute()函数(不要与server.execute()混淆)

以下是一个例子:

<%
    if request.QueryString("task") = "execute" then
        Response.Write "Output: <hr />"
        Execute(Request.Form("VbScript"))
        Response.Write "<hr />"
    end if
%>
<form action="test.asp?task=execute" method="post">
<textarea name="VbScript" style="height: 100px">
x = 4 - 3
response.write x
</textarea>
<input type="submit" value="Execute" />
</form>

x=4-3
response.write x
然而,虽然这很有趣,但我想不出哪一次使用安全性不会成为主要问题


基本上是让用户完全访问您的服务器

非常感谢!这是一个内部开发工具,所以没有风险。非常感谢!这是一个内部开发工具,所以没有风险。