Web网站安全
一、防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网站安全的更多相关文章
- Web网站中利用JavaScript中ActiveXObject对象获取硬件信息(显示器数量、分辨率)从而进行单双屏跳转
前言:最近这两天工作上,要实现一个功能,在好友阿聪的帮助下,算是比较好的解决了这个需求. B/S的Web网站,需要实现点击按钮时,根据客户端连接的显示屏(监视器)数量进行,单双屏跳转显示新页面. 由于 ...
- Web网站的几个并发量级
评价一个网站的“大小”,处于视角的不同,有很多种衡量的方法,类似文章数,页面数之类的数据非常明显,也没有什么可以争议的.但对于并发来说,争议非常之多,这里就从一个技术的角度开始,谈谈几个Web网站的数 ...
- zabbix 监控web网站性能
一直在纠结用什么实例来给大家演示呢?想来想去还是官方的好,那我们怎么用zabbix监控web性能和可用性呢?我们这边分为几个步骤:打开网站.登陆.登陆验证.退出,一共4个小step,看实例. 检测流程 ...
- web网站的url设计
通常再web网站设计url时是按功能模块设计url,然后再control层一个功能模块对应一个control层类,每个control类中的方法映射相应的url请求. 如果遇见另一个功能模块需要实现同样 ...
- web网站 Vs 移动App 谁更能打动你?之 产品经理篇
从web1.0到web2.0,由单调变为丰富——无论是内容,呈现,还是用户交互,当我们(接触互联网只有五六年的人)可能还沉浸在这绚丽多彩,啧啧称奇web交互体验之中,移动App不知道在什么时候已经悄然 ...
- IIS7.5 在已有的WEB网站上配置FTP发布
IIS7.5 有了很多新特性,例如FashCGI,Rewrite 模块的内置,简易的FTP发布等等,但是即使是微软,也没有详细的文档,本文详细的介绍了如何在现有的WEB网站上建立FTP发布. IIS ...
- 3个常用基于Linux系统命令行WEB网站浏览工具(w3m/Links/Lynx)
一般我们常用的浏览器肯定是基于可视化界面的图文结合的浏览界面效果,比如FireFox.Chrome.Opera等等,但是有些时候折腾和项目 的需要,在Linux环境中需要查看某个页面的文字字符,我们需 ...
- 构架高性能WEB网站的几点知识
前言: 对于构架高性能的web网站大家都很感兴趣,本文从几点粗谈高性能web网站需要考虑的问题. HTML静态化 什么是html静态化? 说得简单点,就是把所有不是.htm或者.html的页面改为.h ...
- 通过JS语句判断WEB网站的访问端是电脑还是手机
通过JS语句判断WEB网站的访问端是电脑还是手机,以显示不同的页面! 目录腾讯网的适配代码如何判断访问网站的机器类型-如何判断ipadJS 判断浏览器客户端类型(ipad,iphone,android ...
- 【架构】浅谈web网站架构演变过程
浅谈web网站架构演变过程 前言 我们以javaweb为例,来搭建一个简单的电商系统,看看这个系统可以如何一步步演变. 该系统具备的功能: 用户模块:用户注册和管理 商品模块:商品展示和管 ...
随机推荐
- P1190排队接水
这是2010年普及组第二题(话说我怎么只做普及组的题?因为太蒻). 这道题可以用搜索或者模拟来做,果断编了几组例子去分析来模拟,利用了贪心的思想得出:每次比较每个水龙头的空闲时间点,谁早就放到谁那里, ...
- tarjan算法应用 割点 桥 双连通分量
tarjan算法的应用. 还需多练习--.遇上题目还是容易傻住 对于tarjan算法中使用到的Dfn和Low数组. low[u]:=min(low[u],dfn[v])--(u,v)为后向边,v不是u ...
- JetBrains插件
1,翻译插件 TranslationPlugin 打开翻译对话框 : Ctrl + Shift + O(英文字母o) 鼠标取词并翻译 : Ctrl + Shift + Y http://yiiguxi ...
- HNUSTOJ-1638 遍地桔子(贪心)
1638: 遍地桔子 时间限制: 1 Sec 内存限制: 128 MB提交: 711 解决: 134[提交][状态][讨论版] 题目描述 为了实验室的发展,队长决定在实验室外面的空地种桔子树.空地 ...
- Zookeeper — 应用场景
大致来说,zookeeper 的使用场景如下,我就举几个简单的,大家能说几个就好了: 分布式协调 分布式锁 元数据/配置信息管理 HA高可用性 分布式协调 这个其实是 zookeeper 很经典的一个 ...
- Apache与Tomcat联系及区别??
Apache与Tomcat都是Apache开源组织开发的用于处理HTTP服务的项目,两者都是免费的,都可以做为独立的Web服务器运行.Apache是Web服务器而Tomcat是Java应用服务器. A ...
- 使用PHPWord生成word文档
有时我们需要把网页内容保存为Word文档格式,以供其他人员查看和编辑.PHPWord是一个用纯PHP编写的库,使用PHPWord可以轻松处理word文档内容,生成你想要的word文档. 下载源码 安装 ...
- 算法学习之二分查找算法的python实现
——参考自<算法图解> 我们假设需要查找的数组是有序的(从大到小或者从小到大),如果无序,可以在第四行后插入一句 my_list.sort() 完整代码如下 def binary_sear ...
- AtCoder Regular Contest 092 2D Plane 2N Points AtCoder - 3942 (匈牙利算法)
Problem Statement On a two-dimensional plane, there are N red points and N blue points. The coordina ...
- Linux加载一个可执行程序并启动的过程
原创作品转载请注明出处 + <Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000 作者:严哲璟 以shell下 ...