2013-11-01 59 views
-2

如果通过基本64编码中的查询字符串参数传递,我有要求丢弃javascript代码。我想剥去参数中的所有javascript并保留字符串的其余部分。什么是实现这一目标的最佳方式。如何从查询字符串参数(Crosscripting)中删除javascript?

输入:

www.xyz.com/pages/Load.aspx?new_url=/test.net/public/pages/SApps.aspx%3Flist%3DL & ENC =真&标题= Ij4gPHNjcmlwdD5hbGVydCgiaGVsbG8gZnJvbSBRQy4iKT当我的Un编码使用下面的代码在C#wvc2NyaXB0PiA8aGVhZGVyOmNvbnRhaW50ZXIg

Title参数

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

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

+0

检查了这一点:http://www.asp.net/mvc/tutorials/older-versions/security/preventing-javascript-injection-attacks-cs – melancia

+0

我想从查询字符串中删除脚本元素。 – Grasshopper

+0

向我们展示如何从查询字符串中获取值,以及什么是“坏”输入(以及它会变成什么)的示例。 – gunr2171

回答

1

你可以使用anti xss库来编码查询字符串或删除脚本标签。

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

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

Sanitizer.GetSafeHtmlFragment(actualstring)

+0

链接唯一的答案一般都不是答案。如果你的链接404s会发生什么? – gunr2171

+0

我用特定的API更新了评论,这会删除脚本标记。 –

相关问题