朋友找我帮忙,有个问题他没办法了.
需求:
会员数据,
1想防爬取
2.防止内部人带出去.
这让我想起来前几年一个系统,按照华为的要求改造的经历.大概要求是一致的。
分析:
防爬取防不了的,信息要显示,都转成图片不现实,改动也会比较大,但可以让爬取到的信息没什么价值,
比如名字,薛占奎显示为薛**,手机号显示为138****3372;
防内部人员,持久化的时候就要遮盖部分内容或加密了.
这些年见过的所有系统的做法:
第一种:
密码保存密文,这只是防止使用会员账户操作的,对程序员来说,拿到代码,改为默认密码,可以说防君子不防小人。
第二种:
密码保存密文、信息显示前做处理,用*遮盖部分内容,这只是防爬取。
只有特殊页面需要显示遮盖的内容,改动不大。
第三种:
提供单独jar包,存入信息的时候进行处理,持久化的信息是已经做过遮盖和密码加密的,需要完整信息的时候,
再通过这个jar包解密,用户记录需要多存一个秘钥。
这种方式,还是防不住内部的人,jar包里面多写点内部类,反编译确实不好看,但为什么不能拿这个jar包直接用呢?
第四种:
与第三种类似,只不过这次不是用jar包,而是一个服务。
1.服务可以通过代理等方式限制访问方
2.加密方法无法直接获得。
但也有问题,这个服务的访问量会远大于会员服务,缓存怎么用就很重要了。