wordpress 不允许评论网站seo文章该怎么写
wordpress 不允许评论,网站seo文章该怎么写,square wordpress,世界建设企业网站CSRF攻击是开发Web后端时需要重点解决的问题。
那么什么是CSRF攻击呢#xff1f;
CSRF跨站点请求伪造(Cross—Site Request Forgery)#xff0c;其主要利用的是Cookie的一个弱点#xff0c;就是Cookie 最初被设计成了允许在第三方网站发起的请求中携带#xff1a; 关于Co…CSRF攻击是开发Web后端时需要重点解决的问题。
那么什么是CSRF攻击呢
CSRF跨站点请求伪造(Cross—Site Request Forgery)其主要利用的是Cookie的一个弱点就是Cookie 最初被设计成了允许在第三方网站发起的请求中携带 关于Cookie : HTTP 协议是无状态的可以通过 Cookie 来维持客户端与服务端之间的“会话状态”。服务端通过 Set-Cookie 响应头设置 Cookie 到客户端而客户端浏览器会自动在下次向服务器发送请求时添加名为 Cookie 的请求头以携带服务端之前“埋下”的内容从而使得服务端可以识别客户端的身份。 第三方Cookie 由当前a.com 页面发起的请求的 URL 不一定也是 a.com 上的可能有 b.com 的也可能有 c.com 的。如果把发送给 a.com 上的请求叫做第一方请求first-party request发送给 b.com 和 c.com 等的请求叫做第三方请求third-party request第三方请求和第一方请求一样都会带上各自域名下的 cookie所以就有了第一方 cookiefirst-party cookie和第三方 cookiethird-party cookie的区别。CSRF 攻击就是利用了第三方 cookie 。 CSRF发起攻击的过程为 1. 用户C打开浏览器访问受信任网站A输入用户名和密码请求登录网站A 2.在用户信息通过验证后网站A产生cookie信息并返回给浏览器此时用户登录网站A成功可以正常发送请求到网站A 3. 用户未退出网站A之前在同一浏览器中打开一个TAB页访问网站B 4. 网站B接收到用户请求后返回一些攻击性代码并发出一个请求要求访问第三方站点A 5. 浏览器在接收到这些攻击性代码后根据网站B的请求在用户不知情的情况下携带第三方cookie信息向网站A发出请求。网站A并不知道该请求其实是由B发起的所以会根据用户C的cookie信息以C的权限处理该请求导致来自网站B的恶意代码被执行。 那么如果应对CSRF攻击呢主要有以下几种手段
1. SameSite属性
Google 起草了一份草案来改进 HTTP 协议就是为 Set-Cookie 响应头新增 SameSite 属性它用来标明这个 cookie 是个“同站 cookie”同站 cookie 只能作为第一方 cookie不能作为第三方 cookie。SameSite 有两个属性值分别是 Strict 和 Lax。
SameSiteStrict
严格模式表明这个 cookie 在任何情况下都不可能作为第三方 cookie绝无例外。比如说假如 a.com 设置了如下 cookie Set-Cookie: foo1; SameSiteStrict Set-Cookie: bar2 这时你在 b.com 下发起的对 a.com 的任意请求中foo 这个 cookie 都不会被包含在 Cookie 请求头中但 bar 会。举个实际的例子就是假如淘宝网站用来识别用户登录与否的 cookie 被设置成了 SameSiteStrict那么用户从百度搜索页面甚至天猫页面的链接点击进入淘宝后淘宝都不会是登录状态因为淘宝的服务器不会接受到那个 cookie其它网站发起的对淘宝的任意请求都不会带上那个 cookie。
SameSiteLax
宽松模式比 Strict 放宽了点限制假如这个请求是改变了当前页面或者打开了新页面且同时是个 GET 请求因为从语义上说 GET 是读取操作比 POST 更安全则这个 cookie 可以作为第三方 cookie。比如说假如 a.com 设置了如下 cookie Set-Cookie: foo1; SameSiteStrict Set-Cookie: bar2; SameSiteLax Set-Cookie: baz3 当用户从 b.com 点击链接进入 a.com 时foo 这个 cookie 不会被包含在 Cookie 请求头中但 bar 和 baz 会也就是说用户在不同网站之间通过链接跳转是不受影响了。但假如这个请求是从 b.com 发起的对 a.com 的异步请求不会改变当前页面也不会打开新页面或者页面跳转是通过表单的 post 提交触发的则 bar 也不会发送。
SameSiteNone:
允许请求自动携带上 Cookie
2.通过请求头中的Referer 字段
根据 HTTP 协议在 HTTP 头中有一个字段叫 Referer浏览器会自动在其中设置该 HTTP 请求的来源地址比如来源于a.com/xxx的请求那么请求头中会包含 Referer: a.com/xxx 因此后台程序只需检查HTTP请求头中的 Referer信息是不是就是本网站的URL即可。
3.通过XSRF-TOKEN
CSRF攻击之所以能产生是因为当发起第三方请求时浏览器会自动为请求添加Cookie但实际上黑客是不知道Cooke的内容的因此可以通过使用Token的方式来应对CSRF攻击方法为 1.后端程序定期的产生随机数并把随机数以名字XSRF-TOKEN放入到Cookie中。 2.前端程序发送请求前读取Cookie中的Token然后将XSRF-TOKEN的内容放入到请求头的X-XSRF-TOKEN中注Axios可以自动将Cookie中的XSRF-TOKEN放入到请求头的X-XSRF-TOKEN中。 3后端程序接收道请求后检查请求头中的X-XSRF-TOKEN是否为合法的Token。 这种应对方法的原理在于攻击网站只能发起第三方请求但是由于跨域原因他是无法读取到Cookie的内容的因此也就无法安置正确的X-XSRF-TOKEN后端可以通过检查X-XSRF-TOKEN来判定这个请求是否为合法请求。
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/89364.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!