应用安全方面,我们有哪些工作可以做

时间:2022-05-22 06:09:22
一款应用开发出来,除了基本的功能外,安全性能通过哪些方法来加强呢

比如说混淆,这个一般都会做,完后加壳,这个也可以做,这是从保护源码的角度考虑,另外还有哪些方法可以来加强安全性呢

我现在做的应用,网络请求的地址都是在客户端代码里,如果被破解了会有什么样的风险,别人可以模拟客户端发送请求给服务器?我现在所有的请求都会加上一个token,这个token是从一个单独的服务器接口获取的(2小时失效),获取后保存在本地,发请求都会带上它,完后服务器会验证这个token,如果客户端发现失效了会重新获取token,这样做是否能避免恶意请求,还有什么方法呢,大家来讨论下吧

7 个解决方案

#1


另外应用还会有支付功能,调用支付宝、微信、银联等等之类的SDK,当然这些第三方本身会将安全做到极致,我客户端还有没有什么途径去进一步加强安全性呢

#2


所以一般安全验证都设置在服务器端,可以这么理解,客户端请求地址接口是通往数据库的路,服务器端安全监测是门禁系统,你不可能不铺路,但你可以多设些门禁

#3


引用 楼主 luqing414 的回复:
一款应用开发出来,除了基本的功能外,安全性能通过哪些方法来加强呢


首先通过人工测试,来提交 bug。

#4


引用 楼主 luqing414 的回复:
我现在做的应用,网络请求的地址都是在客户端代码里,如果被破解了会有什么样的风险,别人可以模拟客户端发送请求给服务器?我现在所有的请求都会加上一个token,这个token是从一个单独的服务器接口获取的(2小时失效),获取后保存在本地,发请求都会带上它,完后服务器会验证这个token,如果客户端发现失效了会重新获取token,这样做是否能避免恶意请求,还有什么方法呢,大家来讨论下吧


只要是软件的,就是很容易调试跟踪的(实际上硬件也可以用仪器来调试),所以没有什么绝对的安全,都是相对的安全。

例如你可能希望同一个 token 绝对不可能在两个 IP 访问、或者是通过两个不同的长连接通道访问。第一个 token一旦失效,例如客户端断网超过1分钟未发送心跳消息,或者是长连接时断开了一下下,那么要求客户端必定是重新申请一个授权token,原来的就 token 就可以失效了。而不是等2小时。

提高你的机制,相对安全了。

#5


不管客户端是否“发现失效了会重新获取token”,这都是服务器端的token规则,客户端就算是没有重新获取token,服务器也不再为不安全的token 响应了。

不要把精力只放在客户端界面跟后台数据库增上改查,服务器端业务逻辑层的设计才是核心,是先要有这个规范,之后才有客户端开发、才有数据库建模。

#6


网络安全:对参数进行加密(可多重加密),采用Https方式请求等。
本地文件、数据库安全:同样是多重加密。
另外就是什么数字签证、权限、.mk文件这些Android原生的加密了。
如果要做到很深入,就需要去了解Android系统底层的SEAndroid安全机制。

#7


首先要进行自己的apk进行加密,可以选择用百度加固
其次是网络安全方便,网络安全的话,常规做法是token验证,走https协议,前后验签,参数加密等方式

#1


另外应用还会有支付功能,调用支付宝、微信、银联等等之类的SDK,当然这些第三方本身会将安全做到极致,我客户端还有没有什么途径去进一步加强安全性呢

#2


所以一般安全验证都设置在服务器端,可以这么理解,客户端请求地址接口是通往数据库的路,服务器端安全监测是门禁系统,你不可能不铺路,但你可以多设些门禁

#3


引用 楼主 luqing414 的回复:
一款应用开发出来,除了基本的功能外,安全性能通过哪些方法来加强呢


首先通过人工测试,来提交 bug。

#4


引用 楼主 luqing414 的回复:
我现在做的应用,网络请求的地址都是在客户端代码里,如果被破解了会有什么样的风险,别人可以模拟客户端发送请求给服务器?我现在所有的请求都会加上一个token,这个token是从一个单独的服务器接口获取的(2小时失效),获取后保存在本地,发请求都会带上它,完后服务器会验证这个token,如果客户端发现失效了会重新获取token,这样做是否能避免恶意请求,还有什么方法呢,大家来讨论下吧


只要是软件的,就是很容易调试跟踪的(实际上硬件也可以用仪器来调试),所以没有什么绝对的安全,都是相对的安全。

例如你可能希望同一个 token 绝对不可能在两个 IP 访问、或者是通过两个不同的长连接通道访问。第一个 token一旦失效,例如客户端断网超过1分钟未发送心跳消息,或者是长连接时断开了一下下,那么要求客户端必定是重新申请一个授权token,原来的就 token 就可以失效了。而不是等2小时。

提高你的机制,相对安全了。

#5


不管客户端是否“发现失效了会重新获取token”,这都是服务器端的token规则,客户端就算是没有重新获取token,服务器也不再为不安全的token 响应了。

不要把精力只放在客户端界面跟后台数据库增上改查,服务器端业务逻辑层的设计才是核心,是先要有这个规范,之后才有客户端开发、才有数据库建模。

#6


网络安全:对参数进行加密(可多重加密),采用Https方式请求等。
本地文件、数据库安全:同样是多重加密。
另外就是什么数字签证、权限、.mk文件这些Android原生的加密了。
如果要做到很深入,就需要去了解Android系统底层的SEAndroid安全机制。

#7


首先要进行自己的apk进行加密,可以选择用百度加固
其次是网络安全方便,网络安全的话,常规做法是token验证,走https协议,前后验签,参数加密等方式