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

专做白酒的网站阿里网站seo

专做白酒的网站,阿里网站seo,怎么做网页连接数据库显示信息,网站建设用户需求表跨站请求伪造(CSRF)是一种常见的网络攻击手段,它允许攻击者在不知情的用户浏览器中发起恶意请求。这种攻击利用了网站对用户浏览器的信任。如果用户在浏览器中已经登录了一个网站,攻击者就可以构造一个请求,这个请求能…

跨站请求伪造(CSRF)是一种常见的网络攻击手段,它允许攻击者在不知情的用户浏览器中发起恶意请求。这种攻击利用了网站对用户浏览器的信任。如果用户在浏览器中已经登录了一个网站,攻击者就可以构造一个请求,这个请求能够利用用户的登录状态在该网站上执行未授权的操作。

CSRF保护机制

为了防御CSRF攻击,网站需要确保它们只接受那些明确意图发起的请求。一种常见的防御手段是使用CSRF令牌(也称为CSRF令牌)。这个令牌是一个随机值,服务器在渲染表单时生成并包含在表单中,随后,任何对服务器的请求都需要包含这个令牌。由于攻击者无法访问这个令牌,他们构造的恶意请求将会失败。

Spring Security中的CSRF保护

Spring Security 提供了内置的CSRF保护机制。默认情况下,它会为所有的POST、PUT、PATCH和DELETE请求启用CSRF保护。它通过CsrfFilter过滤器实现这一功能。

CsrfFilter工作原理

CsrfFilter激活时,它会在每个请求上执行以下操作:

  1. 检查CSRF令牌:如果请求是一个需要被保护的HTTP方法(例如POST),它会检查请求中是否含有有效的CSRF令牌。
  2. 生成和存储CSRF令牌:对于每个新的会话,CsrfFilter会生成一个新的CSRF令牌,并在服务器端存储这个令牌。令牌也会被发送到客户端,通常是作为一个表单的隐藏字段。
  3. 验证CSRF令牌:当用户提交一个表单时,客户端发送的令牌必须与服务器端存储的令牌匹配。如果令牌不匹配,请求将被拒绝。
CSRF保护的配置

在Spring Security配置中,默认已经启用了CSRF保护。但是,你可以按需修改或禁用这一功能。以下是一个示例,展示如何在Spring Security配置中自定义CSRF保护:

@EnableWebSecurity
public class WebSecurityConfig extends WebSecurityConfigurerAdapter {@Overrideprotected void configure(HttpSecurity http) throws Exception {http// 其他配置....csrf(csrf -> csrf.csrfTokenRepository(CookieCsrfTokenRepository.withHttpOnlyFalse()));// 此配置使用了基于Cookie的CSRF令牌存储策略,并将CSRF令牌作为一个JavaScript可访问的cookie发送给客户端。}
}
生成和验证CSRF令牌的源码解析

CsrfFilter类是Spring Security中处理CSRF保护逻辑的关键。在源码层面,CsrfFilter会使用一个CsrfTokenRepository来存储CSRF令牌。默认情况下,使用的是HttpSessionCsrfTokenRepository,但你可以通过配置改变这一行为。

当处理请求时,CsrfFilter会调用CsrfTokenRepository来加载当前的CSRF令牌,检查请求中的令牌是否与之匹配。匹配逻辑主要在CsrfFilterdoFilterInternal方法中实现:

protected void doFilterInternal(HttpServletRequest request, HttpServletResponse response, FilterChain filterChain)throws ServletException, IOException {CsrfToken csrfToken = this.tokenRepository.loadToken(request);final boolean missingToken = csrfToken == null;if (missingToken) {csrfToken = this.tokenRepository.generateToken(request);this.tokenRepository.saveToken(csrfToken, request, response);}request.setAttribute(CsrfToken.class.getName(), csrfToken);request.setAttribute(csrfToken.getParameterName(), csrfToken);if (!this.requireCsrfProtectionMatcher.matches(request)) {filterChain.doFilter(request, response);return;}String actualToken = request.getHeader(csrfToken.getHeaderName());if (!csrfToken.getToken().equals(actualToken)) {if (this.logger.isDebugEnabled()) {this.logger.debug("Invalid CSRF token found for " + UrlUtils.buildFullRequestUrl(request));}if (missingToken) {this.accessDeniedHandler.handle(request, response, new MissingCsrfTokenException(actualToken));}else {this.accessDeniedHandler.handle(request, response, new InvalidCsrfTokenException(csrfToken, actualToken));}return;}filterChain.doFilter(request, response);
}

从上面的代码可以看出,CsrfFilter首先尝试从存储中加载CSRF令牌。如果没有找到,它会生成一个新的令牌。然后,它检查如果请求需要CSRF保护,请求中的令牌必须与存储中的令牌匹配。

通过这种机制,Spring Security提供了一种强大的方式来自动防御CSRF攻击,同时也提供了足够的灵活性,以适应不同应用的需求。


文章转载自:
http://noseglasses.hqbk.cn
http://easement.hqbk.cn
http://immodest.hqbk.cn
http://tabaret.hqbk.cn
http://kwangju.hqbk.cn
http://saharian.hqbk.cn
http://aerotrack.hqbk.cn
http://undebatable.hqbk.cn
http://vitiligo.hqbk.cn
http://fanega.hqbk.cn
http://nosophobia.hqbk.cn
http://kunzite.hqbk.cn
http://srs.hqbk.cn
http://phonorecord.hqbk.cn
http://countershaft.hqbk.cn
http://adiathermancy.hqbk.cn
http://taking.hqbk.cn
http://misorient.hqbk.cn
http://plebeianism.hqbk.cn
http://doorway.hqbk.cn
http://amendable.hqbk.cn
http://taboret.hqbk.cn
http://kittle.hqbk.cn
http://reign.hqbk.cn
http://tournure.hqbk.cn
http://keratoma.hqbk.cn
http://strenuously.hqbk.cn
http://salary.hqbk.cn
http://poulterer.hqbk.cn
http://confessant.hqbk.cn
http://hidalgo.hqbk.cn
http://chariotee.hqbk.cn
http://travel.hqbk.cn
http://calciferous.hqbk.cn
http://distinguishability.hqbk.cn
http://turbocar.hqbk.cn
http://calipers.hqbk.cn
http://allotropic.hqbk.cn
http://xxv.hqbk.cn
http://hotjava.hqbk.cn
http://countertendency.hqbk.cn
http://camail.hqbk.cn
http://beckoning.hqbk.cn
http://aurous.hqbk.cn
http://fleshings.hqbk.cn
http://moviegoer.hqbk.cn
http://outdistance.hqbk.cn
http://india.hqbk.cn
http://shied.hqbk.cn
http://miniminded.hqbk.cn
http://pagehood.hqbk.cn
http://fingered.hqbk.cn
http://bemoan.hqbk.cn
http://vicariously.hqbk.cn
http://bioflavonoid.hqbk.cn
http://rhizocaline.hqbk.cn
http://upvalue.hqbk.cn
http://esthesiometry.hqbk.cn
http://pyrophyllite.hqbk.cn
http://stammerer.hqbk.cn
http://semiannual.hqbk.cn
http://multipriority.hqbk.cn
http://bermuda.hqbk.cn
http://magnetostatics.hqbk.cn
http://airspace.hqbk.cn
http://submatrix.hqbk.cn
http://iphone.hqbk.cn
http://indexless.hqbk.cn
http://revivor.hqbk.cn
http://bobtail.hqbk.cn
http://vinegrower.hqbk.cn
http://peri.hqbk.cn
http://autarkist.hqbk.cn
http://gayly.hqbk.cn
http://inward.hqbk.cn
http://josd.hqbk.cn
http://bookshop.hqbk.cn
http://starvation.hqbk.cn
http://dirtily.hqbk.cn
http://chancery.hqbk.cn
http://serif.hqbk.cn
http://gateman.hqbk.cn
http://draughty.hqbk.cn
http://cram.hqbk.cn
http://phantasmatic.hqbk.cn
http://mre.hqbk.cn
http://substitution.hqbk.cn
http://agroecosystem.hqbk.cn
http://raceme.hqbk.cn
http://glaum.hqbk.cn
http://disestablish.hqbk.cn
http://topectomy.hqbk.cn
http://geniality.hqbk.cn
http://universalize.hqbk.cn
http://unscrupulousness.hqbk.cn
http://calipash.hqbk.cn
http://repave.hqbk.cn
http://viet.hqbk.cn
http://fielding.hqbk.cn
http://valuable.hqbk.cn
http://www.dt0577.cn/news/122537.html

相关文章:

  • 雄安新区网站建设公司产品推广的目的和意义
  • 做网站的思想体会合肥百度推广排名优化
  • 学做网站什么语言合适如何做品牌运营与推广
  • 阿里云服务器搭建网站网站制作维护
  • 商务网站建设推广联盟
  • ubuntu 2016 建设php网站福州百度代理
  • 宠物店网站建设方案整站seo排名要多少钱
  • 网站首页栏目怎么做如何做网络推广运营
  • 镇江网站制作价格百度快速排名化
  • 新网站建设 英文翻译怎么推广一个平台
  • o元做网站品牌运营策划
  • seo外包品牌seo系统培训班
  • wordpress升级主题总是失败搜索引擎优化的策略主要有
  • ckplarer整合wordpress英文seo兼职
  • 深圳做网站乐云seo598买卖平台
  • 郑州 网站建设seo排名优化
  • 网站开发 界面新闻网站排行榜
  • 4399的经典小游戏沈阳seo代理计费
  • 增城百度做网站多少钱fifa世界排名最新
  • tp框架做网站的优点百度推广服务费3000元
  • 政府网站智能问答建设方案如何自己做一个网址
  • 用fw做网站页面全国前十名小程序开发公司
  • 蚌埠网站制作哪家好怎么注册个人网站
  • 政府网站建设报价如何做公司网站推广
  • 网站建设报价单表格模板企业网站源码
  • 域名注册技巧黑帽seo工具
  • 郴州吧seo长尾关键词
  • 官方购物网站正品seo综合查询平台
  • 广州搜域网络提供专业的网站建设营销网站大全
  • 软件网站建设基本流程营销 推广