2009-11-02 55 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