随着互联网的普及,网络安全变得越来越重要,程序员需要掌握最基本的web安全防范,下面列举一些常见的安全漏洞和对应的防御措施。

0x01: XSS漏洞

1、XSS简介

跨站脚本(cross site script)简称为XSS,是一种经常出现在web应用中的计算机安全漏洞,也是web中最主流的攻击方式。

XSS是指恶意攻击者利用网站没有对用户提交数据进行转义处理或者过滤不足的缺点,进而添加一些代码,嵌入到web页面中去,使别的用户访问都会执行相应的嵌入代码。

2、XSS攻击的危害

  • 盗取用户资料,比如:登录帐号、网银帐号等
  • 利用用户身份,读取、篡改、添加、删除数据等
  • 盗窃重要的具有商业价值的资料
  • 非法转账
  • 强制发送电子邮件
  • 网站挂马
  • 控制受害者机器向其它网站发起攻击

3、防止XSS解决方案

  • XSS的根源主要是没完全过滤客户端提交的数据 ,所以重点是要过滤用户提交的信息。
  • 将重要的cookie标记为http only, 这样的话js 中的document.cookie语句就不能获取到cookie了。
  • 只允许用户输入我们期望的数据。例如:age用户年龄只允许用户输入数字,而数字之外的字符都过滤掉。
  • 对数据进行Html Encode 处理:用户将数据提交上来的时候进行HTML编码,将相应的符号转换为实体名称再进行下一步的处理。
  • 过滤或移除特殊的Html标签。
  • 过滤js事件的标签。例如 "onclick=", "onfocus" 等。

0x02:CSRF攻击(跨站点请求伪造)

1、CSRF简介

CSRF(Cross-site request forgery)跨站请求伪造,也被称为“One Click Attack”或者Session Riding,通常缩写为CSRF或者XSRF,是一种对网站的恶意利用。

XSS主要是利用站点内的信任用户,而CSRF则通过伪装来自受信任用户的请求,来利用受信任的网站。与XSS攻击相比,CSRF更具危险性。

2、CSRF攻击的危害

主要的危害来自于,攻击者盗用用户身份,发送恶意请求。比如:模拟用户发送邮件,发消息,以及支付、转账等。

3、防止CSRF的解决方案

  • 重要数据交互采用POST进行接收,当然是用POST也不是万能的,伪造一个form表单即可破解。
  • 使用验证码,只要是涉及到数据交互就先进行验证码验证,这个方法可以完全解决CSRF。
  • 但是出于用户体验考虑,网站不能给所有的操作都加上验证码。因此验证码只能作为一种辅助手段,不能作为主要解决方案。
  • 验证HTTP Referer字段,该字段记录了此次HTTP请求的来源地址,最常见的应用是图片防盗链。
  • 为每个表单添加令牌token并验证。

0x03:SQL注入漏洞

1、简介

SQL注入是比较常见的网络攻击方式之一,主要是通过把SQL命令插入到Web表单递交或输入域名或页面请求的查询字符串,实现无帐号登录,甚至篡改数据库。

2、SQL注入的危害

  • 数据库信息泄漏:数据库中存放的用户的隐私信息的泄露;
  • 网页篡改:通过操作数据库对特定网页进行篡改;
  • 数据库被恶意操作:数据库服务器被攻击,数据库的系统管理员帐户被窜改;
  • 服务器被远程控制,被安装后门;
  • 删除和修改数据库表信息.

3、SQL注入的方式

通常情况下,SQL注入的位置包括:

  • 表单提交,主要是POST请求,也包括GET请求;
  • URL参数提交,主要为GET请求参数;
  • Cookie参数提交;
  • HTTP请求头部的一些可修改的值,比如Referer、User_Agent等;

4、防止SQL注入的解决方案

  • 对用户的输入进行校验,使用正则表达式过滤传入的参数;
  • 使用参数化语句,不要拼接sql,也可以使用安全的存储过程;
  • 不要使用管理员权限的数据库连接,为每个应用使用权限有限的数据库连接;
  • 检查数据存储类型;
  • 重要的信息一定要加密;

0x04:DDOS攻击

1、DOS攻击和DDOS简称

  • DOS攻击(Denial of Service 拒绝服务攻击):凡是利用网络安全防护措施不足导致用户不能继续使用正常服务的攻击手段,都可以被称为是拒绝服务攻击,其目的是通过消耗网络宽带或系统资源,使网络或计算机不能提供正常的服务。
  • DDOS(Distributed Denial of Service ,分布式拒绝服务),凡是攻击者通过控制在网络上的傀儡主机,同时发动他们向目标主机进行拒绝服务攻击的方式称为分布式拒绝服务攻击。

2、DDOS的危害

  • 造成客户业务不可用、利益受损
  • 客户网内一个业务受到攻击,客户联网全面受阻,所有业务瘫痪,连锁反应严重
  • 攻击引发的政治影响、社会舆论的压力给企业带来名誉损失

3、如何防御DDOS攻击

  • 及时更新系统补丁
  • 安装查杀软硬件,及时更新病毒库
  • 设置复杂口令,减低系统被控制的可能性
  • 关闭不必要的端口与服务
  • 经常检测网络的脆弱性,发现问题及时修复。
  • 对于重要的web服务器可以建立多个镜像实现负载均衡,在一定程度上减轻DDOS的危害

总之就是既要做好过滤与编码并使用参数化语句,也要把重要的信息进行加密处理,这样SQL注入漏洞才能更好的解决。

安全漏洞XSS、CSRF、SQL注入以及DDOS攻击的更多相关文章

  1. Web攻防之XSS,CSRF,SQL注入

    摘要:对Web服务器的攻击也可以说是形形色色.种类繁多,常见的有挂马.SQL注入.缓冲区溢出.嗅探.利用IIS等针对Webserver漏洞进行攻击.本文结合WEB TOP10漏洞中常见的SQL注入,跨 ...

  2. Web攻防之XSS,CSRF,SQL注入(转)

    摘要:对Web服务器的攻击也可以说是形形色色.种类繁多,常见的有挂马.SQL注入.缓冲区溢出.嗅探.利用IIS等针对Webserver漏洞进行攻击.本文结合WEB TOP10漏洞中常见的SQL注入,跨 ...

  3. 常见的 CSRF、XSS、sql注入、DDOS流量攻击

    CSRF攻击 :跨站请求伪造攻击 ,CSRF全名是Cross-site request forgery,是一种对网站的恶意利用,CSRF比XSS更具危险性 攻击者一般会使用吸引人的图片去引导用户点击进 ...

  4. 总结了关于PHP xss 和 SQL 注入的问题(转)

    漏洞无非这么几类,XSS.sql注入.命令执行.上传漏洞.本地包含.远程包含.权限绕过.信息泄露.cookie伪造.CSRF(跨站请求)等.这些漏洞不仅仅是针对PHP语言的,本文只是简单介绍PHP如何 ...

  5. 关于PHP xss 和 SQL 注入的问题

    漏洞无非这么几类,XSS.sql注入.命令执行.上传漏洞.本地包含.远程包含.权限绕过.信息泄露.cookie伪造.CSRF(跨站请求)等.这些漏洞不仅仅是针对PHP语言的,PHP如何有效防止这些漏洞 ...

  6. 漏洞重温之sql注入(五)

    漏洞重温之sql注入(五) sqli-labs通关之旅 填坑来了! Less-17 首先,17关,我们先查看一下页面,发现网页正中间是一个登录框. 显然,该关卡的注入应该为post型. 直接查看源码. ...

  7. 漏洞重温之sql注入(六)

    漏洞重温之sql注入(六) sqli-labs通关之旅 Less-26 进入第26关,首先我们可以从网页的提示看出本关是get型注入. 我们给页面添加上id参数后直接去查看源码. 需要关注的东西我已经 ...

  8. 漏洞重温之sql注入(七)

    漏洞重温之sql注入(七) sqli-labs通关之旅 Less-31 首先,进入31关,我们先添加上id参数. 然后,我们查看源码. 我们门可以看到,index页面源码其实很简单,网页也没有对我们的 ...

  9. 常见的网络攻击(XSS,SQL注入,CSRF)

    一.XSS 二.SQL注入 三.CSRF

随机推荐

  1. 从零开始搭建vue+element-ui后台管理系统项目到上线

    前言 之前有些过移动端的项目搭建的文章,感觉不写个pc端管理系统老感觉少了点什么,最近公司项目比较多,恰巧要做一个申报系统的后台管理系统,鉴于对vue技术栈比较熟悉,所以考虑还是使用vue技术栈来做: ...

  2. ML-线性模型 泛化优化 之 L1 L2 正则化

    认识 L1, L2 从效果上来看, 正则化通过, 对ML的算法的任意修改, 达到减少泛化错误, 但不减少训练误差的方式的统称 训练误差 这个就损失函数什么的, 很好理解. 泛化错误 假设 我们知道 预 ...

  3. k8s 挂载卷介绍(四)

    kubernetes关于pod挂载卷的知识 首先要知道卷是pod资源的属性,pv,pvc是单独的资源.pod 资源的volumes属性有多种type,其中就包含有挂载pvc的类型.这也帮我理清了之间的 ...

  4. jmap错误:unknown CollectedHeap type : class sun.jvm.hotspot.gc_interface.CollectedHeap

    原文:https://www.jianshu.com/p/0e5d8db8ed5e 错误场景 今天使用jmap -heap命令查看堆的详细信息报错. [root@instance-2gak1pfv d ...

  5. linux使用useradd创建的用户没有目录的解决办法

    转载请注明来源https://www.cnblogs.com/sogeisetsu/p/11401562.html或https://blog.csdn.net/suyues/article/detai ...

  6. seaborn---画热力图

    1.引用形式: seaborn.heatmap(data, vmin=None, vmax=None, cmap=None, center=None, robust=False, annot=None ...

  7. flex布局--小实例

    圣杯布局(Holy Grail Layout)指的是一种最常见的网站布局.页面从上到下,分成三个部分:头部(header),躯干(body),尾部(footer).其中躯干又水平分成三栏,从左到右为: ...

  8. 201671010446姚良实验十四团队项目评审&课程总结

    实验十四 团队项目评审&课程学习总结 项目 内容 这个作业属于哪个课程 http://www.cnblogs.com/nwnu-daizh/ 这个作业的要求在哪里 https://www.cn ...

  9. spring相关—AOP编程—切入点、连接点

    1 切入点表达式 1.1 作用 通过表达式的方式定位一个或多个具体的连接点. 1.2 语法细节 ①切入点表达式的语法格式 execution([权限修饰符] [返回值类型] [简单类名/全类名] [方 ...

  10. 解决在IDEA中无法使用Scanner输入的问题

    今天写了一段代码用来测试输入,发现不管怎么样搜无法输入数据,代码如下: @Testpublic void func01(){ Scanner scanner = new Scanner(System. ...