1. 介绍在我们日常的Java开发中,免不了和其他系统的业务交互,或者微服务之间的接口调用如果我们想保证数据传输的安全,对接口出参加密,入参解密。但是不想写重复代码,我们可以提供一个通用starter,提供通用加密解密功能2. 前置知识2.1 hutool-crypto加密解密工具hutool-crypto提供了很多加密解密工具,包括对称加密,非对称加密,摘要加密等等,这不做详细介绍。2.2 re
最近使用springboot开发了一个ip代理的程序,今天放到阿里云服务器上运行,多次出现应用运行突然停止的问题。使用free -h 查看内存使用完全正常。重新运行监视CPU使用也正常。没有出现堆内存溢出,栈内存异常,内存异常等信息。百思不得其解,然后就搜索了关键字springboot killed,在stack overflow上看到之后,看了阿里云服务器的swap  空间,果然为0。
ios 里有一个功能:除了能将网页添加到收藏夹外,还能选择将网页的快捷方式添加到 SpringBoard, 并且将这张网页的截图作为快捷方式的图标显示。这里面有个小窍门。Apple 的 iPhone 开发手册上说,这个图标是可以定制的,实现起来也很简单。首先准备一张57px × 57px 的RGBA PNG 图标然后在你的网页的HEAD中加入下面一行<link rel="apple
转载 2023-07-12 20:34:47
98阅读
Load balancer does not have available server for client这个错误一般是在使用feign调用服务时遇到,其实很简单,就是调用的服务不满足负载均衡需求,具体报错信息如下:Whitelabel Error Page This application has no explicit mapping for /error, so you are seei
这段时间公司在做一个移动平台APP的开发,贴向于媒体互娱方面的,相较于以往开发过的app,这个的用户量可以说要大几个量级的,加上项目排期比较赶,导致开发中出了不少这样那样的问题,严重的直接导致线上APP直接跑崩了,因为这个事,项目经理没少发脾气,我们也只能屁颠屁颠的闷头去定位,有时候一个莫名的java.lang.NoClassDefFoundError线上问题,需要花费很大的精力才可以定位处理,定
转载 1月前
30阅读
今天跟大家分享一个比较有意思的东西,这个本身其实与敲代码没多大关系,就是好玩!开整~当我们启动SpringBoot应用的时候,控制台会打印出一个大大的“Spring”,如下:     我们把这个字符串称之为banner。那么我们是否可以更换或者是嫌弃它太碍眼把它关闭呢?答案是显而易见的咯~ 1、如何更换在自己喜欢的位置,创建一个名为ban
目录为什么要配置启动脚本?配置脚本一、选择一个文件夹新建一个XXX.sh文件(xxx可以命名为项目名称,新建.sh .conf 等文件用到的是vi指令)二、进入如下页面,按下键盘 i 键进入insert模式三、insert如下配置(只需修改APP_NAME内容为自己想要启动的jar包)四、脚本代码解释:linux下脚本测试1、启动测试2、查看状态3、停止测试4、重启测试为什么要配置启动脚本?一般情
目前app服务器端通信基本上采用的是加密的算法来传输数据包,防止数据包在传输的过程中被篡改,app加密传输方式一般采用硬编码在apk和服务端,可以解决通过逆向被获取,为了保证服务端的安全性,需要截获app与服务端间的通信,进行重放操作和改包,由于数据包被加密,即使安全人员取得了加密方式,也需要每个包进行解密操作才能进行安全测试,因此还需要使用多个工具协调测试导致测试效率低,不方便进行接口分析。“对
接口加密听起来高大上  ,然而实际上确实将需要传递的参数 与特定的标识key以及其他的固定的属性来组合成一个字符串或者集合传递给对方对方再通过特定的key特定的属性去解密传过来的字符串或者集合,从而获取传过来的参数或者结果集这里重要的便是 这些固定的key或者属性是不能够泄密的废话少说 ,上代码供看管审查:项目传递参数的时候类型大多数都是以map 或者字符串或者json来传递的,这里以m
 上篇文章说到接口安全的设计思路,如果没有看到上篇博客,建议看完再来看这个。通过园友们的讨论,以及我自己查了些资料,然后对接口安全做一个相对完善的总结,承诺给大家写个demo,今天一并放出。对于安全也是相对的,下面我来根据安全级别分析 1.完全开放的接口有没有这样的接口,谁都可以调用,谁都可以访问,不受时间空间限制,只要能连上互联网就能调用,毫无安全可言。实话说,这样的接口我们
转载 2023-08-25 13:24:43
0阅读
在使用jmeter做测试的过程中,经常需要对请求的入参进行加密,下面列举几种常用的方法,以登录请求密码需要MD5加密为例。虽然可以先把参数化的明文密码都先md5加密,而不是在登录前先执行加密,但是实际情况是,登录后的请求也可能有需要加密的入参,且入参是动态获取的,所以最好是在脚本运行过程中加密,而不是提前加密好进行参数化。如果用户的密码都不一样,就需要先对明文密码进行参数化。下面只演示单个用户请求
在我们做项目的时候免不了使用接口请求数据,或者通过接口给其他应用提供数据,但是在网络请求中我们的数据是可以别一些软件抓取到的,这样我们的数据就会别泄露或者被人篡改,在我们实际项目中应该怎么处理呢?下面先简单的说一下几种加密算法:1.DES对称加密算法全称为 Data Encryption Standard,是一种使用密钥加密的块算法。加密串的长度是64位(bit),超过位加密串被忽略。所谓对称性加
转载 2023-08-29 17:26:51
186阅读
加密是一种限制对网络上传输数据的访问权的技术。将密文还原为原始明文的过程称为解密,它是加密的反向处理。在接口开发中使用加密、解密技术,可以防止机密数据被泄露或篡改。在接口自动化测试过程中,如果要验证加密接口响应值正确性的话,就必须使用正确的解密方式先对其实现解密,再完成验证。解决方案通用加密算法场景:了解数据使用的通用加密算法,例如 base64。解决方案:使用通用的解密算法在获取加密响应信息后
如何处理接口加密,主要看开发用的什么方法,接口文档时怎么规定的,这里只是其中的一种加密方法介绍,用的是RSA方法进行加密,先来看一下接口文档当 X-Lemonban-Media-Type 请求头值为 lemonban.v3 时,接口使用 timestamp+token+sign 鉴权关于什么是token,什么是sign,可以参考此篇文章: session和token鉴权方式 需要进行如下
转载 5月前
52阅读
目前app服务器端通信基本上采用的是加密的算法来传输数据包,防止数据包在传输的过程中被篡改,app加密传输方式一般采用硬编码在apk和服务端,可以解决通过逆向被获取,为了保证服务端的安全性,需要截获app与服务端间的通信,进行重放操作和改包,由于数据包被加密,即使安全人员取得了加密方式,也需要每个包进行解密操作才能进行安全测试,因此还需要使用多个工具协调测试导致测试效率低,不方便进行接口分析。 “
目录前言功能设计客户端的功能点(client)服务端的功能点(server)功能实现工具函数client.js(客户端)server.js(服务端)实现效果写在最后前言在网络通信中,如果数据包是明文传输,并且包含敏感信息,那么就很容易被抓包窃取,因此加密手段也成了开发者耳熟能详的知识技能;常见的加密方法有对称加密和非对称加密。对称加密使用同一个密钥进行加密和解密,而非对称加密使用公钥和私钥分别进行
如今,随着各大公司对数据安全愈发重视,App数据的爬取也变得越来越难。大多数主流App都对自己的数据接口进行了参数的加密,如淘系App的X-sign、抖音系App的X-grogon、拼多多App的anti-token等等,如果请求的时候不携带加密参数,就无法爬取数据。这就需要我们对加密函数进行逆向破解,一般流程如下:首先你需要下载App对应的APK文件,对App进行反编译(可见我写的App反编译工
转载 2023-06-27 14:36:53
661阅读
问题postman内置加密Api,但不支持RSA加解密码。如何用postman进入rsa加解密?postman中request对象属性皆为只读,如何把提交时的明文变为密文?解决问题一postman支持eval函数,我们只要将rsa代码存入环境变量中,在需要的时候调用eval函数就可以解决解决问题二postman在每次请求时都会先执行pre-request scripts 中的脚本,在此处我们可以通
1. 介绍在我们日常的Java开发中,免不了和其他系统的业务交互,或者微服务之间的接口调用如果我们想保证数据传输的安全,对接口出参加密,入参解密。但是不想写重复代码,我们可以提供一个通用starter,提供通用加密解密功能2. 前置知识2.1 hutool-crypto加密解密工具hutool-crypto提供了很多加密解密工具,包括对称加密,非对称加密,摘要加密等等,这不做详细介绍。2.2 re
简述接口数据安全的主要实现方式一:数据校验 常用算法:MD5,SHA1流程: 1:前端生成数据后按照约定方式生成一个sign 校验字段(一般通过MD5或者SHA1 方式),一并提交给后端; 2:后端获得参数后通过同样的方式生成sign 然后跟接口携带的sign对比是否一致,以此判断数据是否被修改; eg:下面接口文档中的sign接口参数有: 1 order_id:订单号,唯一,长度小于30 2
  • 1
  • 2
  • 3
  • 4
  • 5