如何使用问号或反斜杠触发400 Bad Request

时间:2017-10-07 01:43:29

标签: asp.net .net asp.net-mvc http iis

requestPathInvalidCharacters指定无效字符列表,这将触发400 Bad Request响应。默认情况下,列表包含:"<,>,*,%,&,:,\\,?"。这包括问号和反斜杠。但就我所见,这两个角色永远不会被视为无效。

第一个问号后面的每个URL字符都将用在查询字符串中。因此,/path?foo?bar等网址被视为有效。在此示例中,查询字符串由单个无密钥值foo?bar组成。即使/?????也是有效的网址。

反斜杠会自动转换为正斜杠,所以我看不出那些被认为是无效的。

1 个答案:

答案 0 :(得分:0)

只有%会触发错误。例如。 GET /% HTTP/1.1因为这是一个不完整的请求。

例如: https://stackoverflow.com/%

其他一些字符会触发400响应,但您的浏览器会自动翻译它们。概念证明:

% curl -i 'http://stackoverflow.com/<'
HTTP/1.1 400 Bad Request