我一直在使用Spring Security 3.2.0中的新csrf功能。并注意到它似乎不适用于enctype=“多部分/表单数据”表单。
我有一个简单的Spring形状:
<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %>
...
<form:form action="${pageContext.request.contextPath}/model/create" modelAttribute="myForm" enctype="multipart/form-data">
隐藏的csrf输入按预期呈现:
<input type="hidden" value="..." name="_csrf">
但是请求没有通过csrf检查(如果我删除enctype="multipart/form-data",它会很好地工作)。我发现的唯一方法是附加“?_csrf=...”到我的操作url,这是丑陋的,因为令牌会在重定向时出现在地址栏中。有人经历过同样的/找到了一个好的解决方案吗?
目前CSFR保护需要/读取请求参数,但是由于您的表单类型不同,表单内容不能作为请求参数使用。如果您将其添加到URL中,它将作为请求参数可用。
在DispatcherServlet内部有多部分检测,这样的请求被包装在多部分服务请求的实现中,该实现对多部分请求进行解码,并将内容作为请求参数提供。
然而,Spring Security过滤器在此之前执行。在有最终解决方案之前,您可以配置MultipartFilter并在Spring Security过滤器链之前执行它。这基本上是在DispatcherServlet
之前进行包装和解码。这里要提醒的一件事是,您还需要将其放在Spring Security过滤器之前。
示例配置和其他解决方案可以在《Spring Security参考指南》中找到。
我在jsp文件中有此表单: 这个广告表单类: 在相应的控制器中,我使用此参数接收数据: 问题是当csrf在sping-security.xml被禁用它的工作正常-我可以看到选择的文件在广告orm.get图像(),但当我启用csrf它停止工作: 我试图通过以下步骤解决这个问题: > 我定义了filterMultipartResolver:
通常,我需要通过JSOUP将数据以响应multipart/form-data的形式发送到站点 作为一个示例,使用一个简单的窗体来sgeniriruet您的查询。 <表单操作=«localhost:8000»方法=«post»enctype=»多部分/表单数据» <输入类型=»文本»名称=»文本»值=»文本默认值» <输入类型=»文件»名称=»文件1» <输入类型=»文件»名称=»文件2» 提交 通
我目前正在尝试解析我通过Chrome中的Postman插件发送的。然而,我得到的输出如下: 当我尝试调试时,会得到这个输出。当我尝试时,我得到一个空数组,所以我假设数据的格式不正确(只是一个字符串)。在我写我自己的算法之前,我想确定我没有用这个算法重新发明轮子。我做错什么了?或者,如果没有,是否存在一些CakePHP3函数来处理这个问题? 更新 我发现了代码中的错误,路由过程似乎以某种方式将pos
问题内容: 我正在编写一个RESTful API。我在使用不同的动词上载图像时遇到麻烦。 考虑: 我有一个对象,可以通过对URL的发布/放置/删除/获取请求来创建/修改/删除/查看。如果有要上载的文件,则请求是多部分形式;如果只有文本要处理,则请求是application / xml。 为了处理与对象相关的图像上传,我正在做类似的事情: 这里的主要问题是在尝试处理放置请求时,显然$ _POST不包
问题内容: 我正在尝试通过带有POST请求的照片上传 根据自述文件,我应该能够做到这一点 问题是,这不起作用。我收到测试服务器的回复,说它转储了0个post变量。 我已经确认该HTML小页面服务器处于工作状态 所以问题是,请求模块在做什么?有没有更好的方法来发送节点? 问题答案: 经过更多研究后,我决定使用。这使得分段上传非常容易。
我正在尝试通过使用多部分数据主体的JMeter构建HTTP请求。 我有一个HTTP头管理器,其内容类型设置为多部分/表单数据;边界=AaB03x。我选择了“将多部分/表单数据用于POST”。 然后我创建了一个数据主体, 当我运行这个程序时,我发现请求没有正确地发送正文,而是发送了一些随机数据, 发布数据: 并给出错误响应, 我的第二个问题是:请求的第3部分发送一个要上载的文件。我可以通过某种方式传