转义ASP / ASP.net中的所有POST / GET参数

时间:2011-11-11 15:24:00

标签: asp.net sql escaping

我是一名PHP开发人员,试图解决ASP / ASP.net(.aspx)中的问题。我们有一个非常古老的应用程序,它有许多安全问题(在多个页面上,到处都是,大乱)。

为了解决这个问题,我想在每个页面的顶部添加一些代码,以便在应用程序处理它之前逃避任何POST / GET请求。

如果是PHP,我会预先添加一个PHP文件(使用.htaccess - auto_preppend)并基本上做:

foreach($_POST as $myval => $anything)
{
    $_POST[$myval] = htmlspecialchars($_POST[$myval]);
    .. other escaping ..
}

ASP中有这样的东西吗?只是想在传递给那些没有人想要触摸的代码之前逃避任何用户输入:(

2 个答案:

答案 0 :(得分:3)

这是ASP还是ASP.NET?完全不同的野兽。如果您使用的是.NET,则可以使用以下内容:

VB中的

For Each item In Request.Form.Keys
    newVal = Server.HtmlEncode(Request.Form(item))
Next

或C#

foreach (var item in Request.Form.Keys) {
    var newVal = Server.HtmlEncode(Request.Form(item));
}

答案 1 :(得分:0)

从个人控制的角度来看,这可能有所帮助:Prevent special characters in a TextBox

如果您想保护整个表单免受脚本注入攻击,请查看RequestValidation:http://www.asp.net/learn/whitepapers/request-validation