一个用户给我发了一些信息,他们把这些信息发布到了我的一个页面上,但是,看着服务器端的代码,我认为它不会流畅地运行我的代码。
他们说他们发了这个:
forminfo=%27+%7C%7C+%27%27+%7C%7C+%27%25booleantest%3Atrue%2Ctrue%2Ctrue
我已经看过了,并且已经计算出%27是一个变身,%7C是一个管道字符,这可能会有风险。
但是,如果数据以这种格式进入我的应用程序,它将崩溃,因为它对发布的信息进行字符串操作。它将字符串拆分为冒号(:)字符。forminfo是我的一个HTML输入元素的名称
如果它是以
forminfo=' || '' || '%booleantest:true,true,true
这样就更清楚了,我可以更好地看到他们发送了什么,以及代码将如何处理输入。
因此,他们是说他们以加密的方式发布数据吗?我的应用程序会知道如何处理加密的发布数据并以某种方式将其解密吗?
他们没有得到一个错误,但如果我自己运行代码,它就会出错。
你能解释一下可能发生了什么吗?
发布于 2009-11-03 03:16:36
以下是URLEncoded数据:
forminfo=%27+%7C%7C+%27%27+%7C%7C+%27%25booleantest%3Atrue%2Ctrue%2Ctrue
如果您的应用程序在以下方面存在问题:
forminfo=' || '' || '%booleantest:true,true,true
那么你确实有一个问题,因为这是你的乐于助人的用户试图告诉你的。
发布于 2009-11-03 02:28:53
如果您的页面正在将表单数据(注入的JavaScript)呈现回浏览器,则可以在页面中解码和呈现十六进制和base64编码的JavaScript。
为了更好地保护您的站点,您可能需要查看XSS (Cross Site Scripting) Cheat Sheet或Cross-site Scripting (XSS)
https://stackoverflow.com/questions/1662439
复制相似问题