- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
当我发布 Spring Boot 应用程序的登录凭据时,出现以下异常。
org.springframework.security.web.firewall.RequestRejectedException: The request was rejected because the URL contained a potentially malicious String ";"
/dologin
然后重定向到
/home
与
jsessionid
附加到最后。它也设置 session cookie。我没有更改任何 session 设置,也没有提到
session
在
application.properties
.
server.servlet.session.cookie.http-only=true
server.servlet.session.tracking-modes=cookie
@Bean
public ServletContextInitializer servletContextInitializer() {
return new ServletContextInitializer() {
@Override
public void onStartup(ServletContext servletContext) throws ServletException {
servletContext.setSessionTrackingModes(Collections.singleton(SessionTrackingMode.COOKIE));
SessionCookieConfig sessionCookieConfig=servletContext.getSessionCookieConfig();
sessionCookieConfig.setHttpOnly(true);
}
};
}
server.session.tracking-modes=cookie
(而不是
server.servlet...
)并且它现在只使用 cookie,但是 Chrome 浏览器在登录后不会将 cookie 发送回服务器!
/home
如果
user
,操作只会重新显示登录页面 session 中的属性为空。
POST /dologin HTTP/1.1
Host: localhost:8080
Origin: http://localhost:8080
Upgrade-Insecure-Requests: 1
Referer: http://localhost:8080/home
HTTP/1.1 302
Set-Cookie: JSESSIONID=3B82AAA40CE94FF490FBF7B4DBD837DD; Path=/; HttpOnly
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Location: http://localhost:8080/home
GET /home HTTP/1.1
Host: localhost:8080
Upgrade-Insecure-Requests: 1
Referer: http://localhost:8080/home
HTTP/1.1 200
Set-Cookie: JSESSIONID=B60BF649068F7E85346691FD2F5D119B; Path=/; HttpOnly
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Type: text/html;charset=UTF-8
Content-Language: en-US
Content-Length: 2742
Date: Sat, 29 Sep 2018 17:41:55 GMT
最佳答案
好换 server.servlet.session.cookie.http-only=true
至 server.session.tracking-modes=cookie
和改变 http://localhost:8080
至 http://127.0.0.1:8080/
工作。我找到了这个答案:
Chrome localhost cookie not being set
Chrome 似乎一直拒绝允许 localhost
禁止 localhost
.大约一三个月前它正在工作。 localhost
正在为 Rails 应用程序工作,而 Chrome 正在发送 cookie。
事实上,Chrome 也在发送 _mt_rails_session
用于 localhost
的 Rails cookie到 Spring Boot 应用程序,但绝不是 JSESSIONID
曲奇饼。
我怀疑,但尚未确认,这可能是由于在端口 8080 上为不相关的第三个 Spring Boot 应用程序设置了 HTTPS,并且 Chrome 内部可能缓存了一些 HSTS 设置。这可能是 Chrome 中的一个错误。
关于 Spring Boot : RequestRejectedException: The request was rejected because the URL contained a potentially malicious String ";",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52566368/
我在我的 Tomcat 日志中看到 大量 RequestRejectedException 条目(示例粘贴在下面)。在几个月前的次要版本升级(Spring Security 4.2.4,IIRC)之后
当我发布 Spring Boot 应用程序的登录凭据时,出现以下异常。 org.springframework.security.web.firewall.RequestRejectedExcepti
不确定这是否是 Spring 5.0.3 的一个错误,或者是一个新功能来解决我的问题。 升级后,我收到此错误。有趣的是,这个错误仅出现在我的本地计算机上。使用 HTTPS 协议(protocol)的测
我是一名优秀的程序员,十分优秀!