一、防SQL注入

  SQL注入,就是在web提交表单,请求参数的字符串中通过注入SQL命令,提交给服务器,从而让服务器执行注入的恶意的SQL命令的行为,是发生在开发程序的数据库层的安全漏洞。

  SQl注入发生的原因:

  1、对用户输入的数据没有进行过滤和校验

  2、在开发中生成SQL语句的时候,采用的是拼接字符串的方法

  3、应用程序连接操作数据库时使用的用户权限过大

  SQL注入的解决方法:

  1、对用户输入的数据保持警惕,对输入的数据进行检查,过滤

  2、对SQL语句使用预编译手段,参数绑定,或者是使用PDO占位符进行转义

  二、XSS攻击

  XSS攻击,又称为跨站点脚本攻击,是web应用中最危险,最普遍的漏洞之一。它与SQL注入类似,SQL注入攻击是以用户输入的内容,提交给数据库服务器执行达到修改或删除数据的攻击,而XSS攻击则是通过往web页面中插入恶意脚本,比如javascrapt,HTML及其它开发语言脚本等,当用户访问该页面时,嵌入的恶意代码就会执行,从而达到攻击用户的目的。它是在网页客户端执行的一种攻击。

  XSS攻击的种类:

  XSS攻击种类大概分为三类,反射型XSS攻击(非持久性跨站攻击)、存储型XSS(持久性跨站攻击)、DOM Based XSS(基于dom的跨站点脚步攻击)。

  反射型XSS攻击:一般是利用页面会直接输出请求参数的特性,通过在url的请求参数中包含恶意脚本,在用户打开url的时候,执行恶意脚本。

  存储型XSS攻击:一般是通过表单输入插入一些恶意脚本,这些脚本会插入数据库中,在其它用户加载对应页面时,该脚本就会被加载执行。该类型XSS攻击最具危险性,因为它不只是影响一位用户,而是大量的用户,而且它还可以进行蠕虫传播。

  DOM Based XSS:它是通过DOM来执行注入脚本的。采用这种方法在源代码中不容易被发现。

  XSS攻击发生的原因:

  1、没有对用户输入的数据和内容进行编码,过滤

  2、因为这种攻击没有特定的方式,它存在很多变体,所以并不能设计出一个能完全防御XSS攻击的过滤器

  XSS攻击的解决方法:

  1、对用户输入的数据进行过滤,对其中的HTML标签及特殊符号进行转义,不过这种过滤方法会使富文本失去作用

  2、使用白名单、黑名单的方法实现过滤

  3、对用户提交的内容进行验证,并对用户的来源进行验证,如URL、关键字、HTTP头、POST数据等,只接收符合长度范围的,数据格式的字符进行提交,其它的一概过滤掉

  下列一些函数可以对出现XSS漏洞的参数进行过滤

htmlspecialchars()     //对在页面上显示的文本进行转义处理
htmlentities() //对在页面上显示的文本进行转义处理
strip_tags() //过滤掉输入、输出里面的恶意标签
header() //使用header("Content-type:application/json")
urlencode() //用于输出处理字符串型参数带入页面链接中
intval() //处理数值型参数输出到页面中

  三、CSRF攻击

  CSRF攻击,也叫跨站请求伪造(Cross-site request forgery)攻击,通常缩写为CSRF或XSRF,是一种对网站的恶意利用。它与XSS攻击类似,但又有本质上的区别,XSS主要是攻击站点内的信任用户,而CSRF则是通过伪装来自受信任用户的请求来利用受信任的网站。攻击者通过浏览器Cookie或服务器Session盗用普通用户的信息,以普通用户的身份伪造请求,对网站发送恶意请求,网站执行请求后引发跨站请求伪造攻击。CSRF盗用用户信息,代替用户进行操作,比如发送邮件,发表评论,购买商品,虚拟货币转帐,导致个人信息泄露和财产安全。

  CSRF攻击的原理

  CSCF攻击发生的原因:

  服务器没有对请求的发源进行合理的检测,就对请求者进行响应,导致用户信息泄露给了攻击者。

  CSRF攻击解决的方法:

  1、对用户的请求验证HTTP Referer的值

  2、使用请求令牌

  四、DDOS流量攻击

  DDOS攻击就是攻击者通过大量的合法的请求来访问网站,导致服务器无法接收普通用户的请求丢失正常的数据包,最终可能会导致网站服务器瘫痪无法进行工作。

  DDOS攻击的预防方法:

  1、关闭不必要的服务

  2、限制同时打开的syn半连接数,并缩短syn半连接的 time out 时间

  3、及时更新系统补丁,并采取有效的合规性配置,降低漏洞被利用的风险

  4、采用分布式部署网站,负载均衡,提升系统容量等措施,总体增强网站的服务能力

  5、把网站做成静态页面,将静态文件和动态文件部署到不同的服务器上,提高抗攻击能力,

参考:

  https://blog.csdn.net/han_cui/article/details/61418484

  https://blog.csdn.net/echo_laodong/article/details/79254552

Web网站安全的更多相关文章

  1. Web网站中利用JavaScript中ActiveXObject对象获取硬件信息(显示器数量、分辨率)从而进行单双屏跳转

    前言:最近这两天工作上,要实现一个功能,在好友阿聪的帮助下,算是比较好的解决了这个需求. B/S的Web网站,需要实现点击按钮时,根据客户端连接的显示屏(监视器)数量进行,单双屏跳转显示新页面. 由于 ...

  2. Web网站的几个并发量级

    评价一个网站的“大小”,处于视角的不同,有很多种衡量的方法,类似文章数,页面数之类的数据非常明显,也没有什么可以争议的.但对于并发来说,争议非常之多,这里就从一个技术的角度开始,谈谈几个Web网站的数 ...

  3. zabbix 监控web网站性能

    一直在纠结用什么实例来给大家演示呢?想来想去还是官方的好,那我们怎么用zabbix监控web性能和可用性呢?我们这边分为几个步骤:打开网站.登陆.登陆验证.退出,一共4个小step,看实例. 检测流程 ...

  4. web网站的url设计

    通常再web网站设计url时是按功能模块设计url,然后再control层一个功能模块对应一个control层类,每个control类中的方法映射相应的url请求. 如果遇见另一个功能模块需要实现同样 ...

  5. web网站 Vs 移动App 谁更能打动你?之 产品经理篇

    从web1.0到web2.0,由单调变为丰富——无论是内容,呈现,还是用户交互,当我们(接触互联网只有五六年的人)可能还沉浸在这绚丽多彩,啧啧称奇web交互体验之中,移动App不知道在什么时候已经悄然 ...

  6. IIS7.5 在已有的WEB网站上配置FTP发布

    IIS7.5 有了很多新特性,例如FashCGI,Rewrite 模块的内置,简易的FTP发布等等,但是即使是微软,也没有详细的文档,本文详细的介绍了如何在现有的WEB网站上建立FTP发布. IIS ...

  7. 3个常用基于Linux系统命令行WEB网站浏览工具(w3m/Links/Lynx)

    一般我们常用的浏览器肯定是基于可视化界面的图文结合的浏览界面效果,比如FireFox.Chrome.Opera等等,但是有些时候折腾和项目 的需要,在Linux环境中需要查看某个页面的文字字符,我们需 ...

  8. 构架高性能WEB网站的几点知识

    前言: 对于构架高性能的web网站大家都很感兴趣,本文从几点粗谈高性能web网站需要考虑的问题. HTML静态化 什么是html静态化? 说得简单点,就是把所有不是.htm或者.html的页面改为.h ...

  9. 通过JS语句判断WEB网站的访问端是电脑还是手机

    通过JS语句判断WEB网站的访问端是电脑还是手机,以显示不同的页面! 目录腾讯网的适配代码如何判断访问网站的机器类型-如何判断ipadJS 判断浏览器客户端类型(ipad,iphone,android ...

  10. 【架构】浅谈web网站架构演变过程

    浅谈web网站架构演变过程   前言 我们以javaweb为例,来搭建一个简单的电商系统,看看这个系统可以如何一步步演变.   该系统具备的功能:   用户模块:用户注册和管理 商品模块:商品展示和管 ...

随机推荐

  1. The kth great number

    The kth great number Problem Description Xiao Ming and Xiao Bao are playing a simple Numbers game. I ...

  2. lb开金矿 QDUOJ 数论

    lb开金矿 QDUOJ 数论 原题链接,点我进去 题意 大家都知道lb有n个小弟(编号从2到n+1),他们可以按照规则传递信息:某天编号为i的小弟收到信息后,那么第二天他会给编号为j的小弟传达信息,其 ...

  3. spring controller 方法测试

    controller 测试 不使用其他api接口测试工具 一般而言,我们写好一个模块后,会对其进行单元测试,再集成到现有的系统中. 但是呢~针对Controller.Service.Dao三层来说,我 ...

  4. mailstats - 显示邮件状态信息

    总览 mailstats [-o] [-C cffile] [-f stfile] 描述 mailstats工具显示当前的邮件状态信息. 首先,先显示统计启动时所记录的时间,当然是以ctime(3)所 ...

  5. SQL Server 批量 删除表索引

    当旧的数据库中的数据几乎很少使用到的时候,索引又占用着较大的磁盘空间,数据又不能删除,又想节省磁盘空间. 这个时候可以将所有表的索引进行删除了(先创建索引备份脚本,以备需要还原),可以批量一起删除. ...

  6. 204-基于Xilinx Virtex-6 XC6VLX240T 和TI DSP TMS320C6678的信号处理板

    基于Xilinx Virtex-6 XC6VLX240T 和TI DSP TMS320C6678的信号处理板 1.板卡概述  板卡由我公司自主研发,基于VPX架构,主体芯片为两片 TI DSP TMS ...

  7. Windows 实用软件

    Useful tool Listary Ditto Winsnap Quick Look Myper Splash GifCam ScreenToGif Free Download Manage Si ...

  8. python基础操作---tuple

    #coding:utf-8 tup1 = ('physics', 'chemistry', 1997, 2000); tup2 = (1, 2, 3, 4, 5 ); tup3 = "a&q ...

  9. element隐藏组件滚动条scrollbar使用

    可使用 组件 <el-scrollbar></el-scrollbar> 设置 组件的样式 为 高度100% <el-scrollbar style="heig ...

  10. hashcode 和 equals

    https://www.cnblogs.com/Qian123/p/5703507.html#_label0 hashCode是jdk根据对象的地址或者字符串或者数字算出来的int类型的数值 详细了解 ...