1、会话安全性
会话固化
一种获取有效回话标识符的方法,他将运行恶意用户通过强制使用回话ID来轻松模拟一个真实用户
攻击方法:<a href="http://a.com/index.php?PHPSESSID=1234">点击此处</a>
保护措施:1).通过内置session_regenerate_id()对其保护,该函数将为用户创建一个新回话文件,并删除旧回话文件,当用户在任何时候变动登录信息的时候(登录,修改密码)就可以运行session_regenerate_id(),这样很大程度降低回话固话攻击。
2).php.ini设置超时属性
3).用户访问敏感信息的时候需要检测用户的有效性,或不完全显示敏感信息,比如显示后几位银行卡信息。
会话劫持(回话固话后的操作)
会话防御有时候会出现防御过度,导致正常用户访问失效,所以需要平衡
防御方法:
1、用户代理验证 (使用HTTP_USER_AGENT,在每个页面都验证他,要保存散列和摘要值并验证)
2、ip地址验证 (第一次登陆后保存用户ip,并且在之后的页面进行ip验证)
3、二级令牌 (设置两个 验证点,使用不同的方法创建令牌)
会话毒化(注入)
注入式攻击的一种变体,允许用户输入保存在会话的变量中,需确认输入数据的验证。关闭注册全局变量的设置。
总结:
1).实现二级令牌方法以防御会话劫持
2).定期从新生成会话和令牌,来防御会话固话
实例:
2、sql注入
3、系统调用(exec/system)主要文件上传使用
使用escapeshellcmd、escapeshellarg
上传文件名要从新修改新的文件名
4、缓冲区溢出
后果:
注入式攻击允许黑客插入代码、sql语句或者其他
特定代码攻击,可以直接控制服务器
拒绝服务器(死循环)
远程探索
数据库字段大小限制、程序判断
防范:
为应用程序打补丁
验证最新版本
检查变量整理
5、文件系统访问
访问文件目录限制
验证文件名称
文件上传限定类型、大小、
6、用户安全
找回密码机制应注意黑客频繁访问地址,发送垃圾邮件
进行验证码管理,防止机器灌水注册
7、加密
对称加密
非对称加密:存在两种秘钥(私有、公有),发送方和持有方具有不通的秘钥(rsa)
单项加密:对称加密的一种变种,在这种加密中,加密信息不需要被解密
加密需要考虑的事情
1、算法能力(MD5<sha1<sha2<password_hash)
2、应用程序速度与安全
3、加密后数据的使用
8、跨站式脚本(对用户影响,不影响系统)
1、xss
恶意用户嵌入html或者其他站点的客户端脚本,能获得用户的敏感信息,或者向用户发送恶意程序。
攻击方式:反射式或非持久式、存储式或持久性
反射式:
让用户点击你的链接,可以发布病毒或破坏cookie后续可进行会话劫持或获取用户信息。
存储式
允许用户输入数据,存储到数据库,并显示出来。
修复xss
过滤恶意代码
9、保护apache与mysql
1)、apache
升级版本
设置apache专用用户和用户组
隐藏版本号以及其他敏感信息
apache限制在自己的目录中
禁用任何不必要选项
安装和启用modsecurity
2)、mysql
最新版本
禁用远程访问
修改管理员密码
删除默认用户,为每个库创建一个账号
删除示例数据库
10、服务器端php的安全性
safe_mode
11、http首部注入攻击
攻击者通过在响应头部字段内插入换行,添加任意响应首部或者主体。称为http响应截断攻击
12、缓存穿透
持续高并发请求一个缓存不存在的数据,由于缓存不存在该数据,则所有请求会落到数据库里面,对数据库造成很大的压力。
对于策略,将不存在的资源也进行缓存起来,让其值为null。
13、OS攻击
随机推荐
-
第一部分:开发前的准备-第一章 什么是Andorid
第1章 什么是Android Android是一个移动设备的软件栈,它包含操作系统,中间件和一些关键的应用.Android SDK提供工具和必要的API用来在Android平台上使用java程序语言来 ...
-
如何用javac 和java 编译运行整个Java工程
转自:http://blog.****.net/huagong_adu/article/details/6929817 前言:本文教你怎么用javac和Java命令,以及如何利用脚本(she ...
-
Python3多线程之间的执行顺序问题
[本文出自天外归云的博客园] 一个多线程的题:定义三个线程ID分别为ABC,每个线程打印10遍自己的线程ID,按ABCABC……的顺序进行打印输出. 我的解法: from threading impo ...
-
【原】关于AdaBoost的一些再思考
一.Decision Stumps: Decision Stumps称为单层分类器,主要用作Ensemble Method的组件(弱分类器).一般只进行一次判定,可以包含两个或者多个叶结点.对于离散数 ...
-
Java知多少(98)Graphics类的绘图方法
Graphics类提供基本绘图方法,Graphics2D类提供更强大的绘图能力.本节讲解Graphics类,下节讲解Graphics2D. Graphics类提供基本的几何图形绘制方法,主要有:画线段 ...
-
Fedora Server 21下OpenJdk和Oracle Jdk共存
最新文章:Virson's Blog 参考文章:博客园-三维蚂蚁 Linux公社 1.首先需要下载对应平台的Jdk:Oracle 官网 2.使用yum或rpm命令安装Jdk: yum install ...
-
【转】WPF自定义控件与样式(6)-ScrollViewer与ListBox自定义样式
一.前言 申明:WPF自定义控件与样式是一个系列文章,前后是有些关联的,但大多是按照由简到繁的顺序逐步发布的等. 本文主要内容: ScrollViewer的样式拆解及基本样式定义: ListBox集合 ...
-
What exactly can you do with Python? Here are Python’s 3 main applications._你能用Python做什么?下面是Python的3个主要应用程序。
原文链接 Github地址 一.陈述 1,我到底能用Python做什么? 我观察注意到Python三个主要流行的应用: 网站开发: 数据科学——包括机器学习,数据分析和数据可视化: 做脚本语言. 二. ...
-
JavaScript变量复制
1.基本类型复制变量: var num1=5: var num2=num1: num1和num2是相互独立,不会相互影响 2.引用类型从一个变量向另一个变量复制引用类型的值 两个变量指向同一个对象,所 ...
-
Diffuse Shading——漫反射光照改善技巧
转:http://www.narkii.com/club/thread-355113-1.html 我们会列出两种方法:使用Half Lambert lighting model(半兰伯特光照模型)和 ...