[英]Apache+PHP Truncated Post/Upload
我一直在尋找一個漏洞,該漏洞已影響到將圖像上傳到我們開發平台上的網站上(尚未能夠實時實現)。
概要是:
大於〜20KB的POST內容會被不一致地截斷。
我還無法確切地知道發生在什么時候。 我有信心將所有數據都傳輸到Apache,但是不確定是否接收到所有數據,是否沒有將某些數據傳遞給PHP或是否正在發生其他事情。
到目前為止,我已采取的步驟:
file_uploads
, post_max_size
, upload_max_filesize
, max_file_uploads
和共同設置為合理值。 LimitRequestBody
設置為0。 我看到的確切行為有些令人困惑。 作為調試的一部分,我檢查了
echo strlen( file_get_contents( 'php://input' ) );
每次嘗試更改該值,無論使用什么文件。 我看到的最大值約為500KB,最低的約為20KB。
通過使用僅在HTTP / 1.0(而不是HTTP / 1.1)中運行的客戶端,我已經能夠在一種情況下解決此問題(10次嘗試中100%的成功率)。
我以此為線索,嘗試使用force-downgrade-1.0
和相關指令,但是這些指令會影響響應而不是請求。
原因:
apache.conf有指令
Timeout 0
這導致Apache HTTPD等待0秒等待發布數據,而不是無限期地等待我的期望。 在開發環境中將Timeout
設置為大量秒數可以解決此問題。
http://httpd.apache.org/docs/2.2/mod/core.html#timeout沒有為Timeout 0
指定語義,所以我假設它是按字面意義解釋的。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.