【问题标题】:How to remove javascript from query string parameter (Crosscripting)?如何从查询字符串参数(Crosscripting)中删除 javascript?
【发布时间】:2013-11-02 19:14:42
【问题描述】:

如果通过 base 64 编码的查询字符串参数传递 javascript 代码,我需要丢弃它。我想剥离参数中的所有 javascript 并保留字符串的其余部分。实现这一目标的最佳方法是什么。

输入:

www.xyz.com/pages/Load.aspx?new_url=/test.net/public/pages/SApps.aspx%3Flist%3DL&enc=true&title=Ij4gPHNjcmlwdD5hbGVydCgiaGVsbG8gZnJvbSBRQy4iKT wvc2NyaXB0PiA8aGVhZGVyOmNvbnRhaW50ZXig

我在 C# 中使用以下代码取消编码时的标题参数

 byte[] dataByte = Convert.FromBase64String(title);
                title= Encoding.UTF8.GetString(dataByte);

将导致 "><script>alert("hello from QC.")</script> <header:containter 这是一个跨脚本问题。我想在这里去掉所有的 Javascript ..

【问题讨论】:

  • 我想从查询字符串中删除脚本元素。
  • 向我们展示如何从查询字符串中获取值,并举例说明“错误”输入会是什么(然后会变成什么)。
  • 那么为什么有base64编码的javascript很重要?即使您直接将其写入浏览器,它也不会做任何事情。
  • 但这只会在您取消编码值时引起问题。向我们展示您在哪里执行此操作,以及您希望输出是什么。

标签: c# html asp.net


【解决方案1】:

您可以使用anti xss库对查询字符串进行编码或删除脚本标签。

http://alldigitalblogs.net/2013/10/30/microsoft-security-library-antixss-library/he

下面的方法从字符串中删除脚本标签,可用于页面标题和html属性。

Sanitizer.GetSafeHtmlFragment(实际字符串)

【讨论】:

  • 只有链接的答案通常不是答案。如果您的链接出现 404 错误会怎样?
  • 我用特定的API更新了评论,这将删除脚本标签。
猜你喜欢
  • 1970-01-01
  • 2010-12-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-06-21
  • 2014-09-06
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多