2013-04-23 75 views
0

我想發送十六進制數據作爲GET請求,如somesite.com/page.php?test=hex_string。 這些數據是在硬件中生成的數據,然後GET請求發送到一個PHP文件。是否可以在GET請求中發送0x00?

但是,當我有0x00(NULL)字符在請求中,它失敗,並有400個錯誤的請求消息。

有沒有一種方法可以在GET請求中發送NUL字符?

+1

沒有什麼能阻止在HTTP請求中發送0x00。 'https://www.google.com/?q = 0x00' – 2013-04-23 04:58:07

+0

我知道這就是我的想法。但是,當我從我的數據字符串中刪除爲0x00,PHP頁面正確地接收數據 – user427969 2013-04-23 05:01:19

+0

這幾乎肯定意味着問題的具體Webserver不一樣,價值有 – 2013-04-23 05:02:42

回答

1

是的。 /?hexdecimal_nullbyte=%00

由於另一端的Web服務器阻止了null-byte attacks,所以失敗。因此,Web服務器說,你這是一個400 bad request,不這樣做:)

+0

我從硬件發送數據,有一切都在處理這樣的十六進制無法避免這種情況! – user427969 2013-04-23 05:03:29

0

之前我有同樣的問題。 我發現的唯一解決方案是在page.php讀取它之前將這些空字節轉換爲小數,然後在page.php之前將其轉換回字節,然後將其發送到硬件。

+0

感謝您的建議 – user427969 2013-04-23 05:48:37