网络安全

186 阅读2分钟

DDos distributed denial-of-service 分布式拒绝服务

通过大规模互联网流量淹没目标服务器或其周边基础设施,以破坏目标服务器、服务或网络正常流量的恶意行为。或者劫持僵尸网络,造成大量合法请求,阻塞服务器,负载过重可能宕机等,使服务器拒绝其他正常流量的访问。

识别:

  1. 来自单个 IP 地址或 IP 范围的可疑流量
  2. 有规律的访问
  3. 单个请求异常大量访问

解决方法:识别正常流量和攻击流量

  1. 提升性能与带宽
  2. 缓存,CDN等增加并发
  3. 异常请求,ip,用户的拦截
  4. DDOS防火墙等

SQL injection sql注入

在表单输入sql语句达到攻击目的 例如:

SELECT * from Users WHERE login = '' or '1'='1' AND password = '' or '1'='1';

解决方案:

  1. 数据校验
  2. 过滤非法数据
  3. 绑定变量,使用预编译pdo

CSRF(Cross-site request forgery)跨站点请求伪造

危险网站伪造被信任用户去请求被攻击的网站,达到伪造请求的目的,被攻击的网站无法分清真正的请求是用户还是危险网站发起的请求,因为具有相同的用户权限。

解决方案:

  1. CSRF漏洞检测
  2. 验证 HTTP header的 Referer 字段,Referer参照的意思,用来标识网页来源 (可以被篡改,浏览器自动携带)
  3. 在请求参数中添加token,并校验(laravel csrftoken)
  4. 检查内置的隐藏变量,在 HTTP 头中自定义属性并验证,需要自己完善功能

laravel 框架的csrf校验: 就是在客户端form表单中设置一个_token表单域,将值存在session中,每个请求都校验_token的值来检验请求是否合法。

XSS cross site scripting 跨站点脚本攻击

将恶意代码注入到网页上,其他用户加载网页时被执行,通常是javecript,html等。

盗用cookie,获取敏感信息,iframe、frame、XMLHttpRequest或上述Flash等方式执行其他用户的操作,进行投票,发微博,加好友等行为。还可以让被攻击网站 一直访问 小型网站 达到DDOS的效果

例如:


//将 <script>alert(123456)</script> 注入到网页上,就会被运行
http://localhost/test.php?name=<script>alert(123456)</script>

<?phpecho "欢迎您,".$_GET['name'];

解决方案:

  1. 变量过滤,htmlspecialchars对内容转码

file upload attack 文件上传漏洞

将可执行的文件上传到服务器,达到攻击效果

解决方法:

  1. 上传目录设置为 不可执行
  2. 添加文件类型校验,压缩图片文件等,可以破坏可执行代码结构
  3. 重命名文件
  4. 使用单独文件服务器,浏览器跨域问题可以拦截部分攻击