我正在开发一个 ASP.Net C# 应用程序(我的第一个!),其中包含一个 HTTP 处理程序。我的应用程序使用通过 URL 传入的几个参数。我的问题如下:
我的应用程序入口点是通过 HTTP 处理程序。当我输入我的 ProcessRequest 方法时,我将 URL 参数的值分配给变量,以便我可以对数据做一些事情。 问题: 这是否安全,即使我在调用 URL 时没有将值设置为任何值?
在我的例子中:我打电话host/handler1.ashx
而不是host/handler1.ashx?something=foo
public void ProcessRequest(HttpContext context)
{
context.Response.ContentType = "text/plain";
string something = context.Request["something"];
context.Response.Write("Hello World: " + something);
}
当使用不带参数的纯 URL 调用上述方法时,它执行得很好,但字符串something
只是空白/空。
附加问题:something
如果我没有通过 URL 显式初始化变量,变量会发生什么?我知道它是空的,但这会导致问题吗?
调用纯 URL 是否危险或不安全(即我是否应该始终使用指定的参数值调用它)?
调用“干净”的 ashx URL 以启动应用程序但不存在风险问题的最佳方法是什么?
应用程序将在累积值并通过查询字符串将它们传递回应用程序时执行一系列后续 GET 重定向。我应该在初次调用应用程序时执行 POST 还是 GET?
很抱歉以多种方式提出同一个问题,但我对这个话题有点困惑,这是我第一次编写这样的应用程序。非常感谢您就如何安全处理和初始化参数提供的任何耐心和建议!