![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
安全方案
文章平均质量分 69
BUG胡汉三
曾梦想仗剑走天涯,因BUG改变原计划。
展开
-
VUE前端RSA+AES加密调用后端接口
之前已经将后端的加解密接口都准备好了过后、就可以跟前端进行联调了。这里使用了VUE作为前端开发框架。我们直接上关键代码了。 这里使用了jsencrypt作为前端RSA的加解密工具。需要注意的是填充方式要与服务端的保持一致、我们服务端使用的填充方式是RSA/ECB/OAEPWithSHA-1AndMGF1PADDING。那么对应这里也应该是同样的填充方式。我们先npm安装一下 添加加密方法(encryptUtils.js)这里需要注意的是,刚刚说的填充方式、jsrsasign原创 2022-07-11 22:54:43 · 2289 阅读 · 0 评论 -
openresty 网关rsa+aes+redis鉴权解密
之前使用了openresty进行了rsa跟aes的加解密测试。现在我们整合一下、使用openresty连接redis做鉴权、解密。之前提到过,我们不使用cookie而是使用token来认证用户信息。而且token是我们自己加密的、加密的规则就是使用aes进行加密。我们再来缕一缕整个流程。客户端(浏览器)流程: 第一步:先获取token(临时token),返回的token是aes加密的,这里的密钥我们就使用固定的aes密钥就好了。token里面包含userId跟tokenId,我们使用token原创 2022-07-11 18:33:44 · 2158 阅读 · 2 评论 -
java调用百度内容审核接口检查文本
最近接到一个需求、要对用户输入的内容进行文本检查。不能输入一些敏感的内容、当时想着这个东西很简单、自己创建一个敏感词汇、使用过滤器对请求的内容进行过滤就好了。运行一段时间过后才发现、维护这个敏感词汇很是花力气。一些“名人”、“网络敏感词”、甚至敏感数字隔一段时间就冒出来了。等你维护进去的时候、你数据库早就有这些信息了。后面决定还是使用第三方的库算了。至少不用太多的维护就能预防绝大多数的敏感词。就算是有一些滞后了、也可以自己手动导入到第三库里面去。而且如果有啥问题、程序员至少不用拉去祭天了、有第三方帮忙背锅。原创 2022-07-10 16:43:52 · 1281 阅读 · 2 评论 -
openresty 与 java RSA加解密
上一篇搞定了openresty与java之间的aes加解密。这一篇就来说说openresty与java之间RSA的加解密。在测试的过程中、发现了与aes同样的问题、就是openresty支持的填充模式不够多。关于这一点可以直接使用C语言实现一份、在通过ffi调用C的api进行加解密。不过我不会C语言......而且好像使用C来做也是特别的麻烦。所以就只能修改java了、让Java使用openresty支持的填充方式。openresty模式的包里面是没有rsa支持的。需要去下载一份、下载地址:GitHub -原创 2022-07-09 10:36:33 · 1049 阅读 · 0 评论 -
openresty Aes解密 Java 加密
之前提到、会采用openresty作为网关进行加解密。在实践的过程中、第一步就要调整代码了。我们之前Java采用的是AES/CBC/PKCS5Padding的填充方式,而openresty的aes.lua里面采用的是openssl的、默认的填充方式是AES/CBC/PKCS7Padding的。而Java本身的加密包是不支持这种填充方式的。需要引入新的加密包bcprov-jdk18on(1.71这个版本对应jdk1.8),这个包能支持AES/CBC/PKCS7Padding的填充模式。AesBouncycas原创 2022-07-08 17:50:53 · 2429 阅读 · 0 评论 -
commons-io静态资源检查
主要功能是监听静态资源是否被改变。如果被改变了、需要即时预警。这里主要是使用commons-io来做文件的变动监听。如果文件或者文件目录发生了变动、就发送变动请求给后台的预警系统。文件操作监听类启动文件目录监测初始化 这样配置好过后、只要启动程序。就能监听指定的目录了。...原创 2022-07-08 11:59:59 · 276 阅读 · 0 评论 -
内部调用签名验签
在服务进行内部调用时、通常是不做认证鉴权操作的。这样就导致了我们的内部接口基本上都是暴露的。如果从内部发起请求、会导致我们之前做的一切都白费了。当然除了做内部调用签名之外、还可以在业务服务内部根据请求的token做鉴权的操作。在签名之前还应加上这里我们采用了内部调用做签名验签的方式。 这里的签名规则可以定义简单一下、参与签名的参数随机字符串、时间戳、以及节点名称、节点IP、还有密码盐就好了。然后采用SHA256或者MD5等算法做一个哈希值。验签的时候同样如此、对哈希值进行比对就好了。SHA25原创 2022-07-08 09:46:43 · 402 阅读 · 0 评论 -
RSA+AES数字信封加解密设计
登录认证、鉴权这些都做好了过后。就开始我们的加密设计了、这里采用了简化数字信封进行加密。首先客户端(浏览器)先请求一份RSA非对称密钥、如果我们采用了openresty或者有能力在nginx开发C模块的插件,就可以在这里保留一份用户的私钥,如果不行就直接在应用网关上面保存(也可以在应用网关直接读取redis获得);然后在浏览器发起请求的时候、请求体加密时本地自己生成AES密钥、在使用获得的公钥对AES密钥进行一次加密(加密结果放在请求头中),最后将请求发送到后端。后端先使用RSA的私钥解密请求头中的AES加原创 2022-07-07 18:16:06 · 2016 阅读 · 0 评论 -
后端认证鉴权
之前我们把redis缓存工具模块做好了、下面结合RBAC权限模型,我们来进行用户的认证鉴权设计。关于RBAC权限模型在之前的文章跟网上都有很多很详细的描述,这里就简单说一下、就是通过用户关联角色(多对多)、角色关联权限(多对多)、并且大部分系统还在角色与角色之间做了上下级关系。用来控制下级角色不能拥有上级角色没有的权限。有些系统还是组合权限的形式、给机构(部门)也跟角色挂钩。具体的根据业务需求来做就好了、反正最后我们的目的就是通过URL跟用户的token来校验当前用户是否拥有该URL的权限。原创 2022-07-07 17:25:13 · 671 阅读 · 0 评论 -
redis缓存存储
spring boot框架下,redis的连接以及redis序列化指定、redis过期监控、redis访问工具类原创 2022-07-07 16:36:31 · 762 阅读 · 0 评论 -
Web架构设计
上一篇说到了、常见的一些Web攻击方式以及一些防御手段。这一篇就说说怎么整合上一篇提到的防御手段来构建一套相对完全不管来说的安全一点的架构。这里我们只针对安全方面做设计、像是权限模型、登录这些就使用通用的RBAC模型来做权限的底层设计。我们专注与上层的认证、鉴权实现模块就好了。 这里最外面一层就使用nginx来做入口,当然有钱的并且有一定规模的肯定是上F5这些硬件负载均衡的。并且我们的静态资源(前端代码)也可以放在这里。前端资源因为是静态的、可以添加一些静态资源的监控、防止资源被篡改(给你的首原创 2022-07-07 16:07:05 · 1746 阅读 · 0 评论 -
Java web 安全
随着近年来各种安全问题层出不穷。客户的安全意识也得到了不少的提升。说一件本人遇到的吧、公司的服务被人删库了、比特币勒索。真的是删除的干干净净、就剩下一张表、里面的内容就是往指定的账号打比特币。也不敢真打......只能联系云运营商、通过镜像备份恢复了某一时段的数据。至今到底是哪里出了问题也不清楚。 直到后续各种json工具包的反序列化不断爆出漏洞、spring、就连spring security也不能幸免。最离谱的就是log4j了。现在想起来、这些漏洞应该早就掌握在黑客的手中了、相当于0day原创 2022-07-07 12:17:40 · 1313 阅读 · 0 评论