这是我参与「第五届青训营」伴学笔记创作活动的第15天。
一、本堂课重点内容
本节课重点在于基于「防御者」角色的视角,剖析不同攻击手段的技术细节,以便更好地维护web安全。
二、详细知识点介绍
XSS
跨站脚本攻击(也称为XSS)指利用网站漏洞从用户那里恶意盗取信息。网站中包含大量的动态内容以提高用户体验,比过去要复杂得多。所谓动态内容,就是根据用户环境和需要,Web应用程序能够输出相应的内容。动态站点会受到一种名为“跨站脚本攻击”(Cross Site Scripting, 安全专家们通常将其缩写成XSS,原本应当是css,但为了和层叠样式表(Cascading Style Sheet,CSS )有所区分,故称XSS)的威胁,而静态站点则完全不受其影响。
- 永远不信任用户的提交内容
- 不要将用户提交内容直接转换成DOM
XSS-现成工具
前端
- 主流框架默认防御XSS
- google-closure-library
服务端(Node)
- DOMPurify .
CSRF
网站中包含大量的动态内容以提高用户体验,比过去要复杂得多。所谓动态内容,就是根据用户环境和需要,Web应用程序能够输出相应的内容。动态站点会受到一种名为“跨站脚本攻击”(Cross Site Scripting, 安全专家们通常将其缩写成XSS,原本应当是css,但为了和层叠样式表(Cascading Style Sheet,CSS )有所区分,故称XSS)的威胁,而静态站点则完全不受其影响。
CSRF的防御
if伪造请求三异常来源
then限制请求来源>限制伪造请求 以下三项为请求头部
- Origin
- 同源请求中,GET + HEAD不发送s 6920
- Referer
Samesite Cookie
Chrome 51 开始,浏览器的 Cookie 新增加了一个SameSite属性,主要用于防止CSRF攻击和用户追踪。 为什么这时候来讲这个事情呢,在Chrome 80之后,由于SameSite默认值的改变,导致大部分浏览器在跳转跨站的网站时没有携带Cookie,造成登录态失效等一系列问题。 为了保护保护用户隐私,Safari更加直接,默认直接禁用了第三方携带Cookie。导致链接跳转或者接口请求第三方都无法携带Cookie。最直观的就是,比如,当前网页有一个 GitHub 链接,用户点击跳转就不会带有 GitHub 的 Cookie,跳转过去总是未登陆状态。
打开浏览器控制台输入cookie=能够得到一些cookie信息,
同时我们还可以借助火狐的一些工具比如hackbar来抓取cookie信息。
三、引用参考
掘金、知乎