【发布时间】:2009-11-03 03:16:36
【问题描述】:
一位用户向我发送了一些他们发布到我的一个页面的信息,这些信息可能存在 XSS 问题,但是查看服务器端代码,我认为它不会顺利通过我的代码。
他们说他们发送了这个:
forminfo=%27+%7C%7C+%27%27+%7C%7C+%27%25booleantest%3Atrue%2Ctrue%2Ctrue
我查看了这个,发现 %27 是一个撇号,而 %7C 是一个可能有风险的管道字符。
但是,如果数据以这种格式进入我的应用程序,它将崩溃,因为它对发布的信息进行字符串操作。它在冒号 (:) 字符上进行字符串拆分。 forminfo 是我的 HTML 输入元素之一的名称
如果它以
的形式出现forminfo=' || '' || '%booleantest:true,true,true
然后它更清晰,我可以更好地看到他们发送的内容以及代码将如何处理输入。
他们是说他们以加密方式发布数据吗?我的应用程序会知道如何处理加密的发布数据并以某种方式对其进行解密吗?
他们没有收到错误,但如果我自己运行代码就会出错。
你能解释一下可能发生了什么吗?
【问题讨论】:
标签: c# asp.net html encoding forms