作者回复: 是的,模拟器识别确实可以通过机器学习等方式来识别异常行为。对于严格要求进行人机识别的场景,可以使用手机验证码、高难度的验证码识别、或者类似银行U盾的usb客户端证书认证来解决。
作者回复: 👍
作者回复: 1. 撤回这条信令也是写入到离线buffer里的,上线时接收方收到原消息和撤回信令,前者会被后者覆盖。
2. 一般是从mq拿到消息进行入库,入库成功才会下推。
作者回复: 这个我不是专业哈,一般可以通过端口扫描、数据抓取分析等方法吧,大点的公司会有专门的网络安全部门来定期检查外网暴露的端口和传输的内容。
作者回复: 谢谢,刚看到哈~
作者回复: 每个uid登录验证时先获取到各自独立的salt,然后和登录提交的密码进行哈希,将结果和存储的密码密文进行一致性校验,这里salt和存储的密码密文一般都会分开存储。
作者回复: 您这里提到的wns具体是哪个产品?我看腾讯和万网都有叫wns的网络组件。
作者回复: 常用的对称加密就可以吧,AES-128 AES-256这些加上随机数。
作者回复: 消息存储的时候不一定需要加密哈,使用tls来进行消息传输基本就能避免消息被中途截获,篡改的问题。
作者回复: 可以生成一个临时的对称秘钥,通过公钥加密后发给对方,来解决非对称加密性能差的问题,对于普通文本,也可以直接用公钥来加密。公钥可以都存放在公认的第三方权威服务器上(比如iMessage的端到端加密公钥就上传到苹果的Apple IDS服务器上),用户能从服务器获取到你的公钥,另外还可以通过GPG 使用去中心化的信任模型,来自行通过多种渠道交换公钥。
作者回复: 这个好像比较困难吧,比如源代码泄露,重新基于原有代码来打包一个新app,这种通过请求很难鉴定出来呀,不确定是不是有基于app包md5进行校验的哈。个人觉得更多的是需要防止机器模拟人的行为来使用app吧。
作者回复: 除了限制处理或者重新登录还有其他方式来验证确实是真正的用户在使用还是模拟器在跑吗?
作者回复: httpDNS就是让浏览器或者APP直接请求“从自建服务器接口返回的IP而不是域名”。
作者回复: 如果是源码级的泄露这些内部机制也能获取到了呀。
作者回复: epoll就是nio的实现呀,nio的异步非阻塞主要是指io过程中,用户进程不需要等待I/O(比如read和write不需要hang住等待),而是直接返回,并通过Reactor模型来实现socket可读写时才唤醒io线程进行读写操作。
作者回复: 基本上是这样的:浏览器端 wss + json。