这是我参与「第五届青训营 」伴学笔记创作活动的第 11 天
一、XSS跨站脚本攻击
一种代码注入攻击。攻击者在目标网站上注入恶意代码,当被攻击者登陆网站时就会执行这些恶意代码,这些脚本可以读取 cookie,session tokens,或者其它敏感的网站信息,对用户进行钓鱼欺诈,甚至发起蠕虫攻击等。
解决方法:
1、 httpOnly 由于很多XSS攻击目的都是盗取Cookie的,因此可以通过HttpOnly 属性来保护Cookie的安全。httponly 默认是false,即这个cookie可以被js获取,假如你的cookie没加密又没设置httponly,你的cookie可能就会盗用,所以httponly增加了安全系数HttpOnly 是包含在 Set-Cookie HTTP 响应标头中的附加标志。可以防范 XSS攻击。 springBoot 项目中怎样设置,在配置文件中配置:
2、 对客户端输入过滤 对用户的输入进行过滤,通过将 <>、''、""等字符进行转义!!!! 移除用户输入的Style节点、Script节点、iframe节点、 (1)url参数使用encodeURIComponent方法转义 (2)尽量不是有InnerHtml插入HTML内容 (3)使用特殊符号、标签转义符。
3、 充分利用CSP 虽然在服务器端执行过滤或者转码可以阻止 XSS 攻击的发生,但完全依靠服务器端依然是不够的,我们还需要把 CSP 等策略充分地利用起来, 以降低 XSS 攻击带来的风险和后果。
二、CSRF跨站请求伪造
攻击者诱导受害者进入第三方网站,在第三方网站中,向被攻击网站发送跨站请求。利用受害者在被攻击网站已经获取的注册凭证,绕过后台的用户验证,达到冒充用户对被攻击的网站执行某项操作的目的。
跟跨网站脚本(XSS)相比,XSS 利用的是用户对指定网站的信任,CSRF 利用的是网站对用户网页浏览器的信任。 可以这么理解CSRF攻击:攻击者盗用了你的身份,以你的名义发送恶意请求。CSRF能够做的事情包括:以你名义发送邮件,发消息,盗取你的账号,甚至于购买商品,虚拟货币转账…造成的问题包括:个人隐私泄露以及财产安全。 这利用了web中用户身份验证的一个漏洞:简单的身份验证只能保证请求发自某个用户的浏览器,却不能保证请求本身是用户自愿发出的。
防御CSRF攻击 :
1、添加验证码
2、使用token
(1)服务端给用户生成一个token,加密后传递给用户
(2)用户在提交请求时,需要携带这个token
(3)服务端验证token是否正确
三、DDos分布式拒绝服务攻击
利用大量的请求造成资源过载,导致服务不可用。 DDos避免方式: 1、限制单IP请求频率。 2、防火墙等防护设置禁止ICMP包等 3、检查特权端口的开放
四、总结
前端安全十分重要,也是校招面试、笔试中的常见考点,需要注意掌握。