当先锋百科网

首页 1 2 3 4 5 6 7

一:PHP

        1. CSRF 攻击和 XSS 攻击分别代表什么?

                1.CSRF攻击

                1.概念:

                CSRF(Cross-site request forgery)跨站请求伪造,用户通过跨站请求,以合法身份做非法的事情

                2.原理:

                1.登录受信任网站 A,并在本地生成 Cookie。(如果用户没有登录网站 A,那么网站 B 在诱导的时候,请求网站 A 的 api 接口时,会提示你登录)。

                2.在不登出 A 的情况下,如果 A 网站存在 CSRF 漏洞,此时 B 网站给 A 网站的请求(此时相当于是用户访问),A 网站会认为是用户发的请求,从而 B 网站就成功伪装了你的身份,因此叫跨站请求伪造。

                3.防范:

                        1.Token 验证

                        2.Referer 验证:Referer 指的是页面请求来源。意思是只接受本站的请求,服务器才做响应;如果不是,就拦截。

                2. XSS攻击

                1.概念:

                XSS(Cross Sit人 Scripting):跨域脚本攻击。

                2.原理:

                不需要你做任何的登录认证,它会通过合法的操作(比如在 url 中输入、在评论框中输入),向你的页面注入脚本(可能是 JS、html 代码块)。

                3.防范:

                1.编码:对用户输入进行编码。

                2.过滤 :移除用户输入和事件相关的属性。(过滤 script、style、iframe 等节点)

                3.校正:使用 DOM Parse 转换,校正不配对 DOM 标签。

                4.HttpOnly:HttpOnly属性是Set-Cookie HTTP 响应标头的可选属性,由 Web 服务器在 HTTP 响应中与网页一起发送到 Web 浏览器。下面是使用Set-Cookie标头设置会话 cookie 的示例:

HTTP/2.0 200 OK
Content-Type: text/html
Set-Cookie: sessionid=QmFieWxvbiA1


上面的会话 cookie 不受保护,可以在 XSS 攻击中被盗。但是,如果会话 cookie 设置如下,则可以防止使用 JavaScript 访问它:

Set-Cookie: sessionid=QmFieWxvbiA1; HttpOnly

                4.分类:

                反射型(非持久):点击链接,执行脚本

                存储型(持久):恶意输入保存数据库,其他用户访问,执行脚本

                基于 DOM:恶意修改 DOM 结构,基于客户端

参考:

XSS 攻击和 CSRF 攻击各自的原理是什么?两者又有什么区别?以及如何防范?_csrf攻击和xss攻击_gqkmiss的博客-CSDN博客