You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Insomnia发送含编码特殊字符的GET请求返回400错误求助

解决URL含特殊字符导致的400 Bad Request问题
  • 服务器安全机制拦截
    多数Web服务器(如Apache、Nginx)或WAF(Web应用防火墙)会默认拦截|、<、>这类特殊字符,防止注入类攻击。比如Apache的mod_security模块、Nginx的默认路径字符规则,都会把这些字符判定为非法内容。

    • 调整方案:
      • Apache:在配置文件中添加AllowEncodedSlashes NoDecode,同时检查mod_security规则,将|、<、>从拦截字符列表中移除;
      • Nginx:在对应server块中配置allow_encodedslashes on;,并检查WAF规则是否存在相关拦截策略,按需调整。
  • 后端框架的路径字符校验
    像Spring Boot、Django这类后端框架,默认会对URL路径中的字符做严格校验,非常规字符会直接返回400错误。

    • 调整方案:
      • Spring Boot:在配置文件中添加对应服务器的宽松字符配置,比如Tomcat用server.tomcat.relaxed-path-chars=|,>,<,Undertow用server.undertow.allowed-chars-in-path=|,>,<;
      • Django:自定义路由解析逻辑,或者修改框架的URL校验规则,放宽对这类特殊字符的限制。
  • 切换到查询参数传递特殊内容
    当前你把带特殊字符的内容放在URL路径中,服务器对路径部分的字符限制通常比查询参数更严格。可以尝试将这部分内容移到查询参数里,编码后发送,比如:

    https://myhost/publication/info?id=11%20%7C%20Friends
    

    这种方式大概率能绕过路径字符的校验限制。

内容的提问来源于stack exchange,提问作者M. Schwarz

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.23 21:22:06