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攻击

随机推荐

  1. [k8s]k8s配置nfs做后端存储&配置多nginx共享存储&&statefulset配置

    所有节点安装nfs yum install nfs-utils rpcbind -y mkdir -p /ifs/kubernetes echo "/ifs/kubernetes 192.1 ...

  2. maven的配置及一些常用命令

    一般来说,github上大多的java项目都是使用maven,ant等进行构建的.由于之前没有使用过maven,因此这几天对maven进行了简单的学习.古话说:“温故而知新”,一些命令长时间不使用都会 ...

  3. MXNET:监督学习

    线性回归 给定一个数据点集合 X 和对应的目标值 y,线性模型的目标就是找到一条使用向量 w 和位移 b 描述的线,来尽可能地近似每个样本X[i] 和 y[i]. 数学公式表示为\(\hat{y}=X ...

  4. golang_elasticsearch 多精确值匹配

    问题 比如要查找属于两种类型的物品,这个时候,term查询就不行了,需要采用terms查询. golang中的用法 看了一下,olivere/elastic 包提供了一个 terms查询,于是高兴的直 ...

  5. MUI 打包android app

    自有证书生成方法 manifest配置 (2).图标配置:所有图片格式必须是png,且严格符合分辨率要求.使用其他图片格式重命名为png会导致打包失败.配置图标时选择自动生成所有适用图标,选择一个大图 ...

  6. Java——安全地停止线程

    错误用例 下面用例中,一个正在sleep的线程,在调用interrupt后,wait方法检查到isInterrupted()为true,抛出异常, 而catch到异常后没有处理.一个抛出了Interr ...

  7. python风格的抽象工厂模式

    抽象工厂模式: 提供一个接口,用户创建多个相关或依赖对象,而不需要指定具体类. 原则: 依赖抽象,不依赖具体类. 实例: 用不同原材料制作不同口味的披萨,创建不同原材料的工厂,不同实体店做出口味不同的 ...

  8. mysql数据库建立的数据库在哪个文件夹?

    一般在安装目录下的data文件夹下,或者在C:\Documents and Settings\All Users\Application Data\MySQL\MySQL Server 5.1\dat ...

  9. Python 函数(参数组合)

    在Python中定义函数,可以用必选参数.默认参数.可变参数和关键字参数,这4种参数都可以一起使用,或者只用其中某些,但是请注意,参数定义的顺序必须是:必选参数.默认参数.可变参数和关键字参数 定义一 ...

  10. [React] 03 - Intro: react.js in twelve demos

    Ref: React 入门实例教程 这算什么,react学习例子的十二门徒?哈哈 如何运行别人的react项目? Ref: [React全家桶入门之CODE]项目代码与使用方法 使用git克隆项目到本 ...