问题描述
需要有关静态文件的帮助
问题:应用程序启动时,静态文件可以通过任何(GET,POST,XXX)http方法访问 应用程序在漏洞扫描中失败,如下所示 已识别: - 动词篡改,仅允许所需的 http 方法,例如获取,发布。
Spark Java 版本:spark-core:2.7.2
服务器:Jetty(9.4.14.v20181114)
是否可以添加过滤器或其他替代方法来停止访问来自 CURL 或 POSTMAN 的静态信息?
样品复制器
import static spark.Spark.halt;
import spark.Service;
public class ServerExample {
public ServerExample() {
Service service = Service.ignite().port(4568);
service.staticFiles.externalLocation("C:\\dev"); //zip file https://github.com/perwendel/spark/issues/1204 [![download zip file for static][1]][1] [![zip file content][1]][1]
service.before((req,res) -> {
System.out.println("Hello:" + req.headers());
});
service.get("/",(req,res) -> {
if (!req.requestMethod().equalsIgnoreCase("GET")) {
halt(401,"invalid Http method");
}
return null;
});
}
public static void main(String[] args) {
new ServerExample();
}
}
从 CURL 重现问题
请求 1
有效请求
curl -X GET --insecure http://localhost:4568/
无效请求
curl -X XYZ --insecure http://localhost:4568/
针对静态 html 的有效和无效 http 请求的应用响应
<!doctype html>Welcome......
请求 2
有效请求
curl -X GET --insecure http://localhost:4568/manifest.json
无效请求
curl -X XYZ --insecure http://localhost:4568/manifest.json
作为清单文件的有效和无效 http 请求的应用响应
{
"icons": [\[][2]
{
"src": "favicon.png","sizes": "48x48",
上述 curl 请求中的 XYZ 是无效的 HTTP 方法。
应用不应响应任何无效的 http 方法,并且在 staticFiles.externalLocation 的情况下不会为“/”添加过滤器。
可以帮助解决这个问题。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)