-2

如果通过 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 ..

4

1 回答 1

1

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

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

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

Sanitizer.GetSafeHtmlFragment(实际字符串)

于 2013-11-01T18:17:38.663 回答