C# 如何从跨站点脚本中清除ashx url?

C# 如何从跨站点脚本中清除ashx url?,c#,asp.net,httphandler,C#,Asp.net,Httphandler,例如,我有一个处理程序MyPage.ashx?parameter=1¶meter=2 如果有人添加到url的末尾alert('Test') MyPage.ashx?参数=1¶meter=2alert('Test')) javascript将在客户端执行 是否仍然可以从跨站点脚本中清除url?检查 除此之外,您不应将未经扫描或未经验证的请求输入参数返回给客户端。检查 除此之外,您永远不应该将未经扫描或未经验证的请求输入参数返回到客户端。执行javascript只是因为您正在输出用

例如,我有一个处理程序
MyPage.ashx?parameter=1¶meter=2

如果有人添加到url的末尾
alert('Test')

MyPage.ashx?参数=1¶meter=2alert('Test'))
javascript将在客户端执行

是否仍然可以从跨站点脚本中清除url?

检查

除此之外,您不应将未经扫描或未经验证的请求输入参数返回给客户端。

检查


除此之外,您永远不应该将未经扫描或未经验证的请求输入参数返回到客户端。

执行javascript只是因为您正在输出用户输入原始数据


如果ashx需要输出参数,则必须对其进行适当编码。假设您正在ashx页面中创建HTML,则需要在输出参数值之前输入参数值。对于特定类型有不同的编码方法,如果没有ashx脚本的更多细节,很难判断需要使用哪种编码方法。

执行javascript只是因为您要输出用户输入的原始数据


如果ashx需要输出参数,则必须对其进行适当编码。假设您正在ashx页面中创建HTML,则需要在输出参数值之前输入参数值。特定类型有不同的编码方法,如果没有ashx脚本的更多细节,很难判断需要使用哪种编码方法。

真的吗?怎么用?您是否将参数2值直接粘贴到返回的数据中?是HTML吗?如果是,为什么要使用ashx,如果不是,为什么要执行它?是的,我正在传递参数。什么是更好的方法呢?但不管怎样,我的url是否有参数并不重要。如果有人真的附加脚本?怎么用?您是否将参数2值直接粘贴到返回的数据中?是HTML吗?如果是,为什么要使用ashx,如果不是,为什么要执行它?是的,我正在传递参数。什么是更好的方法呢?但不管怎样,我的url是否有参数并不重要。如果有人附加脚本,我有一个处理程序,它不是appliedIt,据我所知。请参阅检查注释。Joseph说元素中的“validate”属性与输入验证无关,它取决于您使用的ASP.NET版本。看,这就是为什么。正如您所建议的,ASP.NET请求验证仅适用于ASP.NET<4.0的aspx页面。无论如何,你不应该依赖它。在将URL部分或参数用作任何类型的输入或(更糟糕的是)输出的字符串之前,您需要验证/转义URL部分或参数。据我所知,我有一个处理程序,它不是appliedIt。请参阅检查注释。Joseph说元素中的“validate”属性与输入验证无关,它取决于您使用的ASP.NET版本。看,这就是为什么。正如您所建议的,ASP.NET请求验证仅适用于ASP.NET<4.0的aspx页面。无论如何,你不应该依赖它。在将URL部分或参数用作任何类型的输入或(甚至更糟的)输出的字符串之前,需要验证/转义它们
MyPage.ashx?parameter=1&parameter=2<script>alert('Test')</script>