Joh*_*ink 5 java url tomcat servlets
我有一个运行Java servlet的Tomcat服务器.我正在尝试创建一个返回存储文件的servlet,给定它们的加密ID.
ID:100
加密ID:+ e4/E5cR/aM =
URL编码的ID:%2Be4%2FE5cR%2FaM%3D
生成的URL:http:// localhost/file/demo /%2Be4%2FE5cR%2FaM%3D
当我尝试关注该链接时,我甚至没有进入我的servlet代码 - 服务器返回此错误:无法加载资源:服务器响应状态为400(错误请求)
这个URL让Tomcat在到达我的代码之前拒绝了它有什么问题?我通过URL编码器运行它,我没有看到任何无效字符.
小智 7
您在网址中使用斜杠"/"编码.由于潜在的攻击,Apache不允许它们.有允许他们的设置:
System.setProperty("org.apache.tomcat.util.buf.UDecoder.ALLOW_ENCODED_SLASH", "true");
Run Code Online (Sandbox Code Playgroud)
要么
-Dorg.apache.tomcat.util.buf.UDecoder.ALLOW_ENCODED_SLASH=true
Run Code Online (Sandbox Code Playgroud)
看到类似的帖子.