2009-11-02 77 views
0

用户向我发送了一些信息,他们发布到我的网页中有潜在的XSS问题之一,然而,看着服务器端代码,我认为它不会顺利地通过我的代码。HTML编码形式发布

他们说,他们发回:

forminfo=%27+%7C%7C+%27%27+%7C%7C+%27%25booleantest%3Atrue%2Ctrue%2Ctrue 

我已经看过这一点,并摸索出27%是Apostrophy和%7C是这可能是危险的一个管道字符。

但是,如果数据以该格式进入我的应用程序,它将崩溃,因为它对发布的信息进行了字符串处理。它对冒号(:)字符进行字符串分割。 forminfo是我的HTML输入元素

之一的名称。如果它来作为

forminfo=' || '' || '%booleantest:true,true,true 

那么它的更加清晰,我可以看到更好的东西,他们发送的代码将如何处理输入。

因此,他们是否说他们以加密方式发布数据?我的应用程序是否知道如何处理加密的发布数据并以某种方式解密?

他们没有得到一个错误,但如果我自己运行代码它错误。

你能解释可能发生了什么吗?

回答

1

以下为URLEncoded数据:

forminfo=%27+%7C%7C+%27%27+%7C%7C+%27%25booleantest%3Atrue%2Ctrue%2Ctrue 

如果你的应用程序将有问题:

forminfo=' || '' || '%booleantest:true,true,true 

然后你确实有一个问题,因为这是你有用的用户试图告诉你。

+0

它解码不会有问题,但url解码发生在哪里? – Jon 2009-11-02 20:01:19

+0

它作为QueryString变量的请求管道的一部分自动发生。 – 2009-11-02 20:12:11