【问题标题】:How to clean ashx url from cross-site scripting?如何从跨站点脚本中清除 ashx url?
【发布时间】:2011-06-09 14:51:27
【问题描述】:

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

如果有人在网址末尾添加了<script>alert('Test')</script>

MyPage.ashx?parameter=1&parameter=2<script>alert('Test')</script>

javascript 将在客户端执行

有没有办法从跨站脚本中清除 url?

【问题讨论】:

  • 真的吗?如何?您是否将参数 2 值直接粘贴到未转义返回的数据中?它是 HTML 吗?如果是,为什么要使用 ashx,如果不是,为什么要执行?
  • 是的,我正在传递参数。有什么更好的方法?
  • 但无论如何,我的网址是否有参数并不重要。如果有人附上脚本

标签: c# asp.net httphandler


【解决方案1】:

只有在输出用户输入原始内容时才会执行 javascript。

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

【讨论】:

    【解决方案2】:

    查看ASP.NET Request Validation

    除此之外,您绝不应该将未经转义或未经验证的请求输入参数呈现给客户端。

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-11-24
    • 2011-02-16
    • 2021-10-17
    • 1970-01-01
    • 1970-01-01
    • 2014-01-27
    • 2011-02-24
    • 1970-01-01
    相关资源
    最近更新 更多