URL加密方案

楼主
我是社区第8408位番薯,欢迎点我头像关注我哦~
本帖最后由 加菲喵 于 2015-9-10 16:55 编辑

1.问题描述
在实际的应用中,用户在使用我们的报表系统时,越来越多的需要对URL进行加密来避免URL参数注入这种对系统安全造成影响的问题,FineReport在目前版本里并没有提供详细的URL加密方法,故现在我们需要自定义个一个filter来实现具体的加密操作,选择加密的方法必须是可逆,可靠的,因此我们下面将讲解下DES加密报表URL的方法。
2. DES介绍
DES算法为密码体制中的对称密码体制,又被成为美国数据加密标准,是1972年美国IBM公司研制的对称密码体制加密算法。其密钥长度为56位,明文按64位进行分组,将分组后的明文组和56位的密钥按位替代或交换的方法形成密文组的加密方法。DES加密算法特点:分组比较短、密钥太短、密码生命周期短、运算速度较慢。DES工作的基本原理是,其入口参数有三个:key、data、mode。 key为加密解密使用的密钥,data为加密解密的数据,mode为其工作模式。当模式为加密模式时,明文按照64位进行分组,形成明文组,key用于对数据加密,当模式为解密模式时,key用于对数据解密。实际运用中,密钥只用到了64位中的56位,这样才具有高的安全性。DES( DataEncryption Standard)算法,于1977年得到美国政府的正式许可,是一种用56位密钥来加密64位数据的方法。虽然56位密钥的DES算法已经风光不在,而且常有用Des加密的明文被破译的报道,但是了解一下昔日美国的标准加密算法总是有益的,而且目前DES算法得到了广泛的应用,在某些场合,仍然发挥着余热。
3. URL加密实际操作
   1.在class->com->fr->web目录下放入DESFilter.class文件
2.web.xml添加filter标签
3.改过引用报表页面的JSP
   样例代码如下:

<%@Page language="java"contentType="text/html;charset=gb2312"pageEncoding="gb2312"%>
<%@page import="java.util.*"%>  
<%@page import="com.fr.web.DESFilter"%>

<%  

        DESFilter DES=new DESFilter();
      ArrayListurl=DES.url("reportlet=34401.cpt&op=write");
  Stringurl1=url.get(0).toString();//获取加密后的参数信息
Stringurl2=url.get(1).toString();//获取加密后的密钥
  Stringurl_string="http://localhost:8080/WebReport/ReportServer?__rawDataString__="+url2+"&__appkey__="+url1;
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0Transitional//EN">  
<html>  
    <head>
       <title></title>
   <title>Demo</title>  
    </head>  
    <iframesrc="<%=url_string%>" width = 100% height=100%></iframe>  
    <p>页面其他部分</p>  
    </body>  
<html>
注意:URL必须需要__rawdataString__和__appkey__ 参数
对应的是密钥和加密后的参数
4.演示效果
正常页面不会有影响

Index.jsp可以出报表
URL是加密的切不固定的
F5之
DESFilter接口代码已经写好,尽量不要2次书写,代码会在附件给出。





分享扩散:
参与人数 +1 F币 +400 理由
传说哥 + 400 赞一个!

查看全部评分

沙发
发表于 2015-9-6 10:47:31
这个貌似挺强大的!
板凳
发表于 2015-9-6 14:29:21
地板
发表于 2016-10-9 11:33:12
终于找到了
5楼
发表于 2017-7-26 11:18:50
直接把密钥传过去???
6楼
发表于 2019-4-22 13:30:49
10.0的没有web.xml文件,应该怎么做?
7楼
发表于 2019-10-12 14:08:32
8.0的我试了,很好用。升级到10.0的就报错了,缺了不少包。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

6回帖数 3关注人数 16507浏览人数
最后回复于:2019-10-12 14:08

返回顶部 返回列表