Web攻击方式总结

来源:互联网 发布:淘宝饰品店铺名字大全 编辑:程序博客网 时间:2024/05/29 04:59

1.XSS(跨站脚本攻击)

XSS有三种:
1.反射型XSS:
将恶意脚本代码注入到请求中,生成恶意链接,诱使用户点击以达到攻击目的
2.存储型XSS:
攻击代码存储在服务器端,常见的就是攻击者写下一篇具有恶意代码的博客,凡是浏览这篇博客的用户都会在浏览器执行恶意代码。
3.DOM XSS:
通过innerHTML将输入作为html代码写入到页面,修改了dom节点


防御XSS:

1.过滤输入:使用白名单过滤特殊字符

2.HTTPonly:本质上是防止XSS带来的cookie盗窃问题,并未解决XSS

3.输出检查:将变量输出到html时使用编码或者转义的方法

4.处理富文本时,使用白名单禁止危险标签

2.跨站请求伪造(CSRF)

攻击者诱使用户点击指定的页面,用户点击之后看到一张无法显示的图片,而这张图片已经被构造了一个请求,而这个对用户有害的请求的发送用户并不知情。

防御:

1.跨域加载资源时禁止本地cookie的发送。

2.验证码

3.检查refer头(但是有许多情况下用户并不会发送refer,这个不能作为防御CSRF的主要手段)

4.加token:

在url参数中新增一个随机值token,token为用户与服务器共同持有。


3.点击劫持

在用户不知情的情况下诱使用户点击一个按钮,而这个按钮上覆盖着一个看不见的iframe,达到执行恶意代码的目的。本质上是一种视觉欺骗。

防御:

1.禁止iframe的嵌套

2.使用X-Frame-Options头


4.SQL注入

SQL注入本质上是用户能够控制输入的数据,并且原本程序要执行的代码拼接了用户的输入。
注入攻击是应用违背了代码与数据分离的原则导致的结果。

防御:

1.使用预编译语句

2.使用安全的存储过程

3.检查输入的数据类型

4.使用安全函数将字符进行编码
5.使用最小权限原则,避免应用直接以root等高权限用户登录数据库

5.文件上传漏洞

指用户上传了一个可执行文件而获得了执行服务器端命令的权限。

比如:上传web脚本文件,服务器的web容器解释执行了脚本,导致代码执行,也就是所谓的webshell
要利用文件上传漏洞,需要以下条件:


1.上传的文件能够被web容器执行


2.用户能够从web上访问这个文件。



防御:


1.文件上传目录设置为不可执行


2.使用白名单的后缀检查判断文件类型


3.单独设置文件服务器的域名


原创粉丝点击