当前位置: 首页 > news >正文

沈阳模板 网站建设娱乐视频直播网站建设

沈阳模板 网站建设,娱乐视频直播网站建设,阿里国际网站做免费有用吗,重庆动画网站建设我这2天新建了一个Spring Boot项目测试,在控制器上写了两个接口,一个是支持Get方式访问,另一个支持Post方式访问,发现Get可以,而Post不行。前端Post后,报403,找不到这个方法。 一、原因 原因是…

我这2天新建了一个Spring Boot项目测试,在控制器上写了两个接口,一个是支持Get方式访问,另一个支持Post方式访问,发现Get可以,而Post不行。前端Post后,报403,找不到这个方法。

一、原因

原因是spring boot的防csrf(跨站点请求伪造)机制导致。

当我们新建一个Spring Boot项目的时候,如果有添加了 spring-boot-starter-security 依赖,系统就会默认启用基本认证来保护所有端点,这是为了增加应用的安全性。如果没有配置显式的安全规则,Spring Security 将会要求进行身份验证。表现在前端,就是访问这个接口的时候,会弹出一个窗口让我们输入账号密码,而且这个窗口还不是我们自己做的。通常我们会在项目里添加一个配置类,然后里面加一些白名单。比如获取验证码、登录这些接口应设置为免身份认证,否则没法玩。

import org.springframework.security.config.annotation.web.builders.HttpSecurity;
import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity;
import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter;@EnableWebSecurity
public class SecurityConfig extends WebSecurityConfigurerAdapter {@Overrideprotected void configure(HttpSecurity http) throws Exception {http.authorizeRequests().antMatchers("/captcha","/verify").permitAll().anyRequest().authenticated().and().httpBasic();  // 使用 HTTP 基本认证}
}

但这段代码只解决了"/captcha","/verify"被允许无须身份验证就能访问的问题,但没有解决get可以访问,而post不能访问的问题。也许 Spring Security 认为,GET 请求相对于 POST 请求的行为通常会有所不同,所以对GET比较宽容,而POST就较为严格。这涉及到对CSRF的理解。

二、解决

解决之道就是在上面的Security配置中禁止对CSRF防范的限制,加上http.csrf().disable():

import org.springframework.security.config.annotation.web.builders.HttpSecurity;
import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity;
import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter;@EnableWebSecurity
public class SecurityConfig extends WebSecurityConfigurerAdapter {@Overrideprotected void configure(HttpSecurity http) throws Exception {http.csrf().disable().authorizeRequests().antMatchers("/slideCaptcha","/slideVerify")//.antMatchers("/**").permitAll().anyRequest().authenticated().and().httpBasic();  // 使用 HTTP 基本认证}
}

三、小结

去除防CSRF限制,好像有点不安全。但事实上,通常post方式访问的接口,都需要进行身份验证。身份验证的安全性要高于CSRF防范。另外,现在微服务架构大行其道,前后端分离,二者地址、端口都不一样。前端向后端请求、提交的地址,几乎都经过nginx转发。也就是说,跨域请求是常态,防范没有太多意义。

相关拙作:
防御CSRF问题
WEB项目的安全性注意事项

http://www.yayakq.cn/news/717133/

相关文章:

  • 潍坊美丽乡村建设一般发了哪个网站阿里云网站架构怎么做
  • 铁建设文件在什么网站下载十大后悔的专业
  • 建网站手机软件微信开发平台开发
  • 怎么维护网站教程陈晓佳 中信建设有限责任公司
  • 大兴安岭做网站中国核工业第五建设有限公司待遇怎么样
  • 成都专业网站建设费用做淘宝客需要网站吗
  • 手机网站建设文章深圳网站建设方案优化
  • 网站建设排名优化技巧模板网站 可以做推广吗
  • 做网站有费用吗上市公司网站建设要求
  • 绵阳哪里可以做网站的地方青海餐饮网站建设
  • 平度市城乡建设局网站民兵信息化网站建设
  • 开封网站推广免费做手机网站
  • 关于公司网站开发的事项wordpress如何设置边栏
  • 优秀网站网址百度网站管理员工具
  • 电商网站模板建站网店营销策略有哪些
  • 房产中介网站模板网站开发与维护前景
  • 常平镇网站建设2018年网站开发语言排行
  • 网站建设协调机制网站开发摊销期
  • 必应搜索推广吉林网站优化
  • 网站建设丶金手指花总12东莞债务优化公司
  • 网站工作室 需要什么手续宁波网站建设计
  • 宁德城乡建设部网站那里可以做PC28网站的
  • 企业网站优化兴田德润优惠wordpress自带分页函数
  • 雅虎网站提交安装了两个wordpress
  • 长尾关键词挖掘工具爱网站广安专业网站建设报价
  • 网站建设陆金手指谷哥7制作wordpress博客app
  • 做购物网站多少钱嵊州市住房和建设局网站
  • 上海网站托管百度搜索风云榜游戏
  • 制作一个购物网站需要多少钱微信广告平台
  • 浙江注册公司网站长春业之峰装饰公司怎么样