原文链接:这里,这里!

0.前言
平台漏洞扫描,扫描到一堆安全问题,其中有个关于Shiro的。主要是说如果项目中shiro key为默认密钥或者网络公开密钥,就可以轻易的导致远程代码执行。

本文框架SSM+shiro。

1.解决思路
(1)升级Shiro版本,为1.7.0以上

(2)自定义一个base 64 AES密钥

(3)使用官方生成的方法提供密钥

本文选择的是第三种办法:

我们在shrio新建一个类。参照下面的代码进行添加:

import javax.crypto.KeyGenerator;
import javax.crypto.SecretKey;
import java.security.NoSuchAlgorithmException;
public class GenerateCipherKey {
/** * 随机生成秘钥,参考org.apache.shiro.crypto.AbstractSymmetricCipherService#generateNewKey(int) * @return */
public static byte[] generateNewKey() {
KeyGenerator kg;
try {
kg = KeyGenerator.getInstance(“AES”);
} catch (NoSuchAlgorithmException e) {
String msg=“this is required to function!”;
throw new IllegalStateException(msg, e);
}
kg.init(128);
SecretKey key = kg.generateKey();
byte[] encoded = key.getEncoded();
return encoded;
}
}
然后在spring-shrio.xml找到remembermeManager。添加如下代码:

其中,xxx表示你项目的地址,也就是你上面定义类的地址。

Shiro使用官方方法生成密钥相关推荐

  1. SFTP连接GCP,向服务器发送文件方法,第三方工具生成密钥对连接GCP服务器(putty生成密钥远程连接服务器)...

    190223更新通过WinSCP工具导入key,向服务器发送文件方法: 很多时候需要向服务器发送文件,GCP和一般服务器不太一样,使用ftp和用户名密码不容易获取,一般采用秘钥的方式,下边介绍实现方法 ...

  2. 四种Sandcastle方法生成c#.net帮助类帮助文档

    阅读目录(Content) 方法一.Visual Studio新建documentation生成帮助文档 一.下载 二.安装 三.设置 五.生成 方法二.cmd生成帮助文档 方法三.Sandcastl ...

  3. 【笔记】SFTP、ssh密钥连接远程服务器,putty工具生成密钥,详细图文教程

    微信关注 "DLGG创客DIY" 设为"星标",重磅干货,第一时间送达. 很久之前写文章做过笔记, 好久没用居然忘了, 还好有搜索功能,很方便就找到了. 不多B ...

  4. ubuntu生成密钥和证书_基于浏览器的密钥生成以及与浏览器的密钥/证书存储的交互...

    ubuntu生成密钥和证书 想象以下情况: 您需要从访问您的网站的用户那里获取一个密钥(在非对称情况下为用户的公共密钥 ),并希望浏览器记住私有部分,而不会因冗长的导入过程而困扰用户. 老实说,实际上 ...

  5. SourceTree生成密钥

    SourceTree生成密钥 http://jingyan.baidu.com/album/925f8cb81f0451c0dde0562c.html http://blog.csdn.net/u01 ...

  6. shell一键生成密钥脚本

    shell一键生成密钥脚本 全局声明:以下脚本使用参数路径都来自系统默认,如有需要请自行更改. 初步脚本实例: ssh-keygen -t rsa -N '' <<EOF /root/.s ...

  7. Java(110):非对称加密RSA的使用(KeyPair生成密钥)

    Java(110):非对称加密RSA的使用(KeyPair生成密钥) RSA 算法是一种非对称加解密算法.服务方生成一对 RSA 密钥,即公钥 + 私钥,将公钥提供给调用方,调用方使用公钥对数据进行加 ...

  8. java webservice 证书_java调用基于https的webservice(不生成密钥,基于spring配置,接收所有证书)...

    我的blog:个人博客 最近工作需要调用外部的webservice,之前一直搞的是基于http的ws,没啥好说的 网上很多教程.这次对方提供的接口是基于https的接口,在网上查找都是需要生成密钥,安 ...

  9. 【SSH】SSH 免密码登录配置|Secure Shell 免密认证登录|linux 生成密钥

    目录 LINUX SSH免密登录 即看即用 详细说明 免密登录原理 Secure Shell 免密认证登录 linux 生成密钥 windows 生成密钥 目录 LINUX SSH免密登录 即看即用 ...

最新文章

  1. POJ 2186 Tarjan
  2. Disruptor源码解析 + 实战
  3. 【mysql】sql查询速度不变?不同数据量下,查询速度不会变化的问题
  4. Core Text 入门
  5. JZOJ 5373. 【NOIP2017提高A组模拟9.17】信仰是为了虚无之人
  6. 【算法】最小的K个数
  7. windows键按了没反应_windows快捷键使用 - 小怜
  8. 使用vue实现自定义搜索功能
  9. 用websocket技术开发的web聊天系统
  10. 135. 分发糖果(JavaScript)
  11. 30个常用python实现
  12. 满二叉树与完全二叉树入门
  13. python 怎么得到图像深度图 软件_Python为8bit深度图像应用color map
  14. 不支持S/W HEVC(H265)解码的有效解决方案
  15. 2022年天猫618超级红包玩法入口
  16. qpython3下载不了_qpython3手机版
  17. 新《劳动法》能要来“双薪”?
  18. SpringCloud(一)_健康自检
  19. C++ get()和put()读写文件详解
  20. redis哨兵集群、docker入门

热门文章

  1. 2020中国农业大学计算机考研经验分享
  2. python逗号怎么打_在Python中输出逗号分隔的方法有哪些
  3. C# 中英文逗号相互转换
  4. JS向数组添加元素,插入数据
  5. iPhone 6 与 iPhone 6 Plus 参数对比
  6. Window10 Bug记录
  7. < 了解 HTTP 这一篇就够了 :什么是 HTTP ?HTTP 和 HTTPS 有什么区别 ? >
  8. 二分查找算法代码详细理解
  9. 抖音同款 HTML+CSS+JS制作3D立方体图像库
  10. MATLAB中计算图像哈希,数字图像处理算法及原理(三):相似图片搜索(平均哈希算法)...