dromara / Sa-Token

一个轻量级 Java 权限认证框架,让鉴权变得简单、优雅!—— 登录认证、权限认证、分布式Session会话、微服务网关鉴权、单点登录、OAuth2.0
https://sa-token.cc
Apache License 2.0
16.45k stars 2.6k forks source link

satoken 在过滤特殊字符时返回非法请求,但是状态码是200的问题 #683

Open adwyz opened 1 month ago

adwyz commented 1 month ago

使用版本:

1.38.0

涉及的功能模块:

校验请求 path 的算法

测试步骤:

请问,是我的理解不对,还是文档出了问题?

click33 commented 1 month ago

这是被过滤器拦了,带 /. 的是不安全 path,不予放行

adwyz commented 1 month ago

不予放行我能理解,但是这个路由其实不存在,应该先报404 如果不予放行,状态码是不是应该也是500 而不是200 ,如果是200 的话,很多安全评测软件就过不了。

adwyz commented 1 month ago

我差了一下httpstatus 状态码, 403 表示服务器理解请求客户端的请求,但是拒绝执行此请求 ,是不是用这个也挺合适的。

click33 commented 1 month ago

那你可以自定义一下path校验不通过时的处理方案

SaStrategy.instance.requestPathInvalidHandle = (e, extArg1, extArg2) -> {} 自定义响应状态和报文

adwyz commented 1 month ago

好的,感谢