如何从查询字符串参数中删除javascript(Crosscripting)?

时间:2013-11-01 16:56:45

标签: c# html asp.net

如果通过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#中的以下代码进行Un编码时的标题参数

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

会导致“&gt; <script>alert("hello from QC.")</script> <header:containter这是一个跨脚本问题。我想在这里删除所有Javascript ..

1 个答案:

答案 0 :(得分:1)

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

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

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

Sanitizer.GetSafeHtmlFragment(actualstring)