2016-09-30 33 views
4

尋找這一個幫助。由於該應用是內部的,因此我的分享內容有所限制...IIS HTTP錯誤400(無效的動詞) - 請求損壞?

場景:Web應用向/ api/shortLink端點發送POST請求以找回短鏈接(想法:URL縮短服務)以我們的BI應用程序中的儀表板。短鏈接保存參數/過濾器值,以便用戶可以使用短鏈接返回相同的視圖。

短鏈接服務返回一個常規的200狀態和短鏈接代碼。一切都很好,對嗎?並非如此..頁面上的下一個HTTP請求(GET,POST,無關緊要)將導致HTTP 400錯誤(無效的動詞)。

該問題只發生在Chrome(最新版本)中。 Firefox,IE11,Vivaldi和Safari都能正常工作。

戰後初期的請求得到shortLink值(正常工作,shortLink生成並返回:

Request: 
POST http://jaxbamaptst1:8000/api/shortlink/?sessionId=4ea65890-dbb2-4757-8f03-c0e3bf306cdf HTTP/1.1 
Host: jaxbamaptst1:8000 
Connection: keep-alive 
Content-Length: 18192 
Pragma: no-cache 
Cache-Control: no-cache 
Accept: */* 
Origin: http://jaxbamaptst1:8000 
X-Requested-With: XMLHttpRequest 
User-Agent: Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/53.0.2785.143 Safari/537.36 
Content-Type: application/json; charset=UTF-8 
Referer: http://jaxbamaptst1:8000/Dashboard/1e4ce64e-31e7-4f9e-96aa-8b9e546ba5c8 
Accept-Encoding: gzip, deflate 
Accept-Language: en-US,en;q=0.8 
Cookie: webapp_sessionid=4ea65890-dbb2-4757-8f03-c0e3bf306cdf; webapp_clientid=27271080-59a9-4c3c-aaef-d8c489414165 

"/Dashboard/41c892a0-d83c-4d98-beaa-cee8c656c727?e=false&vo=viewonly&overrides=eyJfX2NsYXNzVHlwZSI6ImR1bmRhcy52aWV3LmNvbnRyb2xzLlZpZXdPdmVycmlkZXMiLCJ2aWV3UGFyYW1ldGVycyI6W10sImRlZmF1bHRWaWV3UGFyYW1ldGVyVmFsdWVzIjpbeyJ2aWV3UGFyYW1ldGVyTmFtZSI6InBhcmFtQ3VycmVudE9yZyIsInBhcmFtZXRlclZhbHVlIjp7Il9fY2xhc3NUeXBlIjoiZHVuZGFzLmRhdGEuQ29sbGVjdGlvbk1lbWJlclZhbHVlIiwidmFsdWVzIjpbeyJfX2NsYXNzVHlwZSI6ImR1bmRhcy5kYXRhLkhpZXJhcmNoeU1lbWJlciIsImNvbXBhdGlibGVVbmlxdWVOYW1lIjoiW0RpbSBFbXBsb3llZV0uW0N1cnJlbnQgT3JnLUNlbnRlci1VTS1UTS1BZ2VudF0uW0NlbnRlcl0uJltSXSZbQ01DXSZbS05YQ01DXSIsImhpZXJhcmNoeVVuaXF1ZU5hbWUiOiJbRGltIEVtcG<<snip rest of overrides. Very lengthy>> 

的反應也屬正常,並返回所需的shortLink:

HTTP/1.1 200 OK 
Cache-Control: no-store, must-revalidate, no-cache, max-age=0 
Pragma: no-cache 
Content-Type: application/json; charset=utf-8 
Expires: Mon, 01 Jan 1990 00:00:00 GMT 
Vary: Accept-Encoding 
Access-Control-Allow-Origin: * 
Date: Fri, 30 Sep 2016 02:44:21 GMT 
Content-Length: 28 

"saqecfh3x14wmygknpqnzxwt3w" 

現在,沒有無論下一個呼叫來自哪一頁,結果將是一個HTTP 400 - 無效動詞

該請求在Chrome中看起來完全正常。但是,當您看到它的提琴手,事情變得有點古怪..

這裏是一個失敗的請求:

JSZVVUAXF1ZU5HBWUIOIJBRGLTIEVTCGXVEWVLXS5BQ3VYCMVUDCBPCMCTQ2VUDGVYLVVNLVRNLUFNZW50XS5BT3JNYW5PEMF0AW9UXS4MW1JDJLTDTUNDIIWIAGLLCMFYY2H5VW5PCXVLTMFTZSI6ILTEAW0GRW1WBG95ZWVDLLTDDXJYZW50IE9YZY1DZW50ZXITVU0TVE0TQWDLBNRDIIWIY2FWDGLVBII6IKNNQYISIMXLDMVSV<<snipped for brevity>>SBGFWC2VKIJPMYWXZZSWIY2HPBGRJDGVTQ291BNQIOJASINVUAXF1ZU5HBWUIOIJBRGLTIGET http://jaxbamaptst1:8000/Link/?shortLink=saqecfh3x14wmygknpqnzxwt3w HTTP/1.1 
Host: jaxbamaptst1:8000 
Connection: keep-alive 
Pragma: no-cache 
Cache-Control: no-cache 
Upgrade-Insecure-Requests: 1 
User-Agent: Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/53.0.2785.143 Safari/537.36 
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8 
Referer: http://jaxbamaptst1:8000/Dashboard/1e4ce64e-31e7-4f9e-96aa-8b9e546ba5c8 
Accept-Encoding: gzip, deflate, sdch 
Accept-Language: en-US,en;q=0.8 
Cookie: webapp_sessionid=4ea65890-dbb2-4757-8f03-c0e3bf306cdf;  webapp_clientid=27271080-59a9-4c3c-aaef-d8c489414165 

注意的編碼數據(或者亂碼虛無?)的「GET」動詞前面。不足爲奇的是IIS返回錯誤400

鉻看起來一切都很好(除了400響應):

Request URL:http://jaxbamaptst1:8000/Link/?shortLink=saqecfh3x14wmygknpqnzxwt3w 
Request Method:GET 
Status Code:400 Bad Request 
Remote Address:127.0.0.1:8888 <<due to Fiddler proxy>> 

曾經見過這樣的事?

此外,作爲旁白 - 我們通常不使用SSL與此應用程序,因爲它是內部的。但是,我注意到,如果我使用SSL訪問它,則不會發生錯誤。

+0

看起來像第二個請求嘗試GET和不向API發送請求。通常,端點會拒絕(出於安全原因)任何GET請求。 – Franco

+0

感謝佛朗哥。預計GET在這裏。它不是一個API端點。這是嘗試導航到短鏈接頁面。 –

回答

3

解決:今天早上終於明白這個問題是由McAfee DLP引起的。如果有其他人遇到類似的情況,請留下此處。

+0

McAfee DLP在什麼情況下可以做到這一點? –