背景

越权漏洞是Web应用程序中一种非常常见的安全漏洞,在中小网站甚至某些大型网站中同样存在,它的威胁在于某个账户可以控制全站用户数据,包括新增、修改和删除操作。越权漏洞的成因主要是由于开发人员在对数据进行操作时对客户端请求过来的数据过分相信而遗漏了权限判定。

越权类型

为了方便描述,在这里假设某网站有两种角色(普通用户和管理员),有三位用户,其中两位普通用户A和B,一位管理员C。

垂直越权

如果A用户登录网站可以查看或变更C的功能则属于垂直越权,由此可见垂直越权通常发生在不同角色之间的。

水平越权

而同角色之间可以互相查看或变更对方的数据则属于水平越权,即A可以查看或变更B的数据。

阅读全文 »

在phpstorm中发现项目打开之后找不到引入的第三方库,尝试过重新打开并引入项目仍然不能解决,最后采用下面方法解决了问题。

由于phpstorm编辑器在初次引入项目时会缓存项目文件,并为这些文件建立索引,以满足全文查询和方法间的跳转要求。如果这些索引出现损坏那势必影响前述的要求,我遇到的问题就在这里,只要让它清理这些缓存文件并重新加载就好。

阅读全文 »

简介

正则表达式又称规则表达式。(英语:Regular Expression,在代码中常简写为regex、regexp或RE),正则表达式通常被用来检索、替换那些符合某个模式(或规则)的文本。

许多程序设计语言都支持利用正则表达式进行字符串操作。例如,在Perl中就内建了一个功能强大的正则表达式引擎。正则表达式这个概念最初是由Unix中的工具软件(sed和grep)普及开来的。

概念

正则表达式是对字符串操作的一种逻辑公式,就是用事先定义好的一些特定字符、及这些特定字符的组合,组成一个规则字符串,这个规则字符串用来表达对字符串的一种过滤逻辑

阅读全文 »

背景

消息队列是实际项目中经常用到的中间件,目前也有很多开源并广泛应用的消息队列,今天拿ActiveMQ来聊一聊,怎样保证它的高可用。

现状

目前ActiveMQ提供了三种主从方案,分别是共享文件系统(Shared File System Master Slave)、数据库(JDBC Master Slave)和LevelDB(Replicated LevelDB Store)。需要注意的是LevelDB存储已被弃用,官方不再支持或建议使用,推荐使用KahaDB来代替。

  • 第一种方式需要直接共享文件系统,在实际操作上比较少见。
  • 而第三种方案已经被弃用
  • 关于第二个方案的性能官方有一段描述:共享数据库不会太快,因为它不能使用高性能日志。但即便如此这也是目前最可靠、可行的一种方案。所以下面主要对基于JDBC的主从配置方式展开介绍。
    阅读全文 »

背景

在启用HTTPS协议的网站上,通常会让用户始终以 https:// 访问,那怎样来实现这个需求呢?首次想到的是在应用代码中实现,但如果后端应用比较多时添加会比较繁琐,另外应用层应该专注业务实现,所以这并不是最合理的方案。试想如果能够将请求流量阻挡的越早肯定会越合理,所以可以在Nginx中配置转发逻辑。

前提

在做这件事情的前提是你已经完成证书安装,通过 https:// 协议能够正常访问网站。

阅读全文 »