欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

web安全与防御

程序员文章站 2022-06-19 10:38:00
xss攻击(跨站脚本) 是网站应用程序的安全泄露攻击,是代码注入的一种。它允许恶意用户将代码注入到网页上,其他用户在观看网页时就会受到影响。 攻击原理 其特点是不对服务器端造成任何伤害,而是通过一些正常的站内交互途径,例如发布评论,提交含有 JavaScript 的内容文本。这时服务器端如果没有过滤 ......
xss攻击(跨站脚本)

是网站应用程序的安全泄露攻击,是代码注入的一种。它允许恶意用户将代码注入到网页上,其他用户在观看网页时就会受到影响。

攻击原理

其特点是不对服务器端造成任何伤害,而是通过一些正常的站内交互途径,例如发布评论,提交含有 JavaScript 的内容文本。这时服务器端如果没有过滤或转义掉这些脚本,作为内容发布到了页面上,其他用户访问这个页面的时候就会运行这些脚本。

防御方法

浏览器端主动进行 XSS 识别

服务器端对于用户输入的内容进行过滤

CSRF攻击

CSRF 的全称是“跨站请求伪造”,而 XSS 的全称是“跨站脚本”。看起来有点相似,它们都是属于跨站攻击——不攻击服务器端而攻击正常访问网站的用户。

攻击原理

CSRF 顾名思义,是伪造请求,冒充用户在站内的正常操作。我们知道,绝大多数网站是通过 cookie 等方式辨识用户身份(包括使用服务器端 Session 的网站,因为 Session ID 也是大多保存在 cookie 里面的),再予以授权的。所以要伪造用户的正常操作,最好的方法是通过 XSS 或链接欺骗等途径,让用户在本机(即拥有身份 cookie 的浏览器端)发起用户所不知道的请求。

一言蔽之就是冒充用户进行一些操作。

防御方法

1、通过 referer、token 或者验证码来检测用户提交。

2、尽量不要在页面的链接中暴露用户隐私信息。

3、对于用户修改删除等操作最好都使用 post 操作。

4、避免全站通用的 cookie,严格设置 cookie 的域。

SQl 攻击

简称:注入攻击。是发生于应用程序之数据库层的安全泄露。

攻击原理:

用户直接输入 sql 语句,如果应用用的是拼接字符串的方式且没有过滤掉的话,当流程走到数据库部分的时候就会直接执行,等于说数据库的信息直接暴露在用户面前,那还不是想干嘛就干嘛。。。

防御方法

1.、验证并转义用户输入

2、base64编码

3、绑定变量,使用预编语言

4、控制用户的权限,以及做好数据库本身的安全工作

文件上传漏洞

是指网络攻击者上传了一个可执行的文件到服务器并执行。这里上传的文件可以是木马,病毒,恶意脚本或者WebShell (诸如 jsp, php, asp 这些脚本)等

攻击原理

有点像 sql 诸如和 xss 就是变成上传文件了。

防御方法

过滤上传类型:比如上传头像文件的类型是否为图片,大小是不是超过了。

引入第三方:将文件上传到第三方提供地址,服务器只保留一个地址即可。

ddos攻击

DDoS 全称 Distributed Denial of Service,分布式拒绝服务攻击。

攻击原理

就是本来一个服务器最大承受一个G的带宽,这时候一次性来了十个G的请求流量,咋整?服务器要么是陷入无尽的请求等待,要么就直接GG了。

防御方法

1、拼宽带

2、流量清洗或者封 IP

3、CDN 服务

4、花钱买相应的防御服务