HTML编码表单帖子

时间:2009-11-02 16:58:19

标签: c# asp.net html encoding html-form

用户向我发送了一些信息,这些信息是他们发布到我的某个网页上但是有可能存在XSS问题,但是查看服务器端代码我不认为它会顺利运行我的代码。

他们说他们发了这个:

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

我已经看过这个并且已经知道%27是一个Apostrophy而%7C是一个管道角色可能有风险。

但是,如果数据以该格式进入我的应用程序,它将会崩溃,因为它会对发布的信息进行字符串操作。它在冒号(:)字符上进行字符串拆分。 forminfo是我的一个HTML输入元素的名称

如果它以

的形式出现
forminfo=' || '' || '%booleantest:true,true,true

然后它更清晰,我可以更好地看到他们发送的内容以及代码如何处理输入。

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

他们没有收到错误,但如果我自己运行代码就会出错。

你能解释一下可能发生的事情吗?

2 个答案:

答案 0 :(得分:1)

如果您的页面将表单数据(注入的JavaScript)重新发送回浏览器,则可以在页面中解码和呈现

hex和base64编码的JavaScript。

为了更好地保护您的网站,您可能需要查看XSS (Cross Site Scripting) Cheat SheetCross-site Scripting (XSS)

答案 1 :(得分:1)

以下是URLEncoded数据:

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

如果您的申请存在以下问题:

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

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