2010-02-05 46 views
0

我在C++中有一個簡單的代理源代碼。我試圖修改它來注入一些HTML內容到特定的頁面。我設法得到它的工作,但每當我注入的東西,部分原始的HTML被損壞。我知道一個事實,它不是我的字符串處理函數,因爲我已經在發送之前打印出結果,這很好。一次發送1460字節的html,每個塊的頂部有一個3個字符的字符串,然後在最後有一個換行符和一個0;http代理javascript注入

例子:

fef 
some html 

co7 
some html 

81f 
final html 
0 

㈣一直在尋找,並試圖弄清楚這三個字符表示。剩餘內容長度是否已加密?也許某種散列?但我找不到任何東西。但我猜他們是問題的根源。任何幫助/見解都會受到讚賞。

+0

我會盡快發佈代碼。順便說一句,我沒有說清楚,但我的「示例」是從服務器收到的內容。 –

回答

3

分塊編碼?見RFC 2616, Section 3.6.1

+0

我讀過它,現在我很確定這是錯誤的來源。非常感謝你。 –

+0

這是我的猜測。 – jmucchiello

+0

是的這個修正了它。字符是十六進制塊的長度,以防任何人感興趣。 –

0

您正在代理的服務器是否指定頭中的響應大小?如果是這樣,並且您正在修改響應正文而不更新標題,則可能會出現像這樣的奇怪錯誤。

+0

響應標頭在發送到客戶端之前確實得到更新。 –