首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Spring HiddenHttpMethodFilter和阻塞HTTP方法

Spring HiddenHttpMethodFilter和阻塞HTTP方法
EN

Stack Overflow用户
提问于 2014-04-05 23:09:28
回答 1查看 1.6K关注 0票数 0

我只允许在Spring3.2应用程序中使用GETPOST方法。

虽然我使用Spring的HiddenHttpMethodFilter (它使用_method参数来支持各种PUT ),但DELETE控制器请求映射。

但是安全性是说,我们的服务器允许各种不安全的方法,如OPTIONSTRACE和其他方法,因为当它们操作_method值时,它们可以看到Allow头作为响应。

这真的是安全威胁吗?是否可以只对PUT和DELETE使用_method?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-04-06 12:12:35

在Spring中,默认情况下,选项和跟踪方法不被分派给控制器,即使您配置控制器来处理这些方法。因此,默认情况下,Spring保护防止使用这些方法,尽管Accept显示这些方法是可用的。

如果需要,可以通过以下方式更改这些默认值:

代码语言:javascript
运行
复制
<servlet>
    <servlet-name>mvc-dispatcher</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <load-on-startup>1</load-on-startup>
    <init-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>classpath:spring/your-mvc-dispatcher-servlet.xml</param-value>
    </init-param>
    <init-param>
        <param-name>dispatchOptionsRequest</param-name>
        <param-value>true</param-value>
    </init-param>
    <init-param>
        <param-name>dispatchTraceRequest</param-name>
        <param-value>true</param-value>
    </init-param>
</servlet>

如果需要,可以按以下方式自定义Accept标头的内容:

代码语言:javascript
运行
复制
@RequestMapping(value = "/someurl", method = RequestMethod.GET)
public ResponseEntity tryOptions(HttpSession session) throws Exception {
    ... controller logic ...

    HttpHeaders headers = new HttpHeaders();
    headers.set("Allow","POST, GET");
    return new ResponseEntity(headers, HttpStatus..SOME_STATUS_CODE);
}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22888052

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档