iOS网络请求小知识: get 和post 布尔值参数处理

简介: iOS网络请求小知识: get 和post 布尔值参数处理

前言

get 和post 布尔值参数处理:如果后台Bool 参数没有同时支持【 0,1】 ;和【 true false】,get请求的时候 就需要特殊处理。

I、使用NSNumber传BOOL值的处理

使用NSNumber 传BOOL值参数时,需要区分get 和Post进行处理。

1.1 问题分析:

使用NSNumber 传BOOL值的时候,get 和post对应的参数不一致

[params setValue:[NSNumber numberWithBool:self.viewModel.multipleSwitchCellTableViewCellModel.IsSon] forKey:@"IsSon"];//

这个代码使用Post 会将请求参数IsSon 自动转为true/false

image.png

但是get 请求的时候就是默认0和1 不会进行将参数IsSon 自动转为true/false

image.png

1.2 解决方案

如果后台get请求没有同时支持【 0,1】 ;和【 true false】,只支持true false的时候,就需要特殊处理。

  • get请求的正确处理
// get  不会自动转为     "IsSon": true,//        "IsSon": false,
//get  需要自己处理
    if(self.viewModel.multipleSwitchCellTableViewCellModel.IsSon){
        [params setValue:@"true" forKey:@"IsSon"];//
    }else{
        [params setValue:@"false" forKey:@"IsSon"];//
    }

image.png

II、扩展:敏感逻辑的保护

2.1 、把函数名隐藏在结构体里,以函数指针成员的形式存储

把函数名隐藏在结构体里,以函数指针成员的形式存储。

编译后,只留了下地址,去掉了名字和参数表,提高了逆向成本和攻击门槛

//  Created by devzkn on 18/09/2017.
//  Copyright © 2017. All rights reserved.
//
#import <Foundation/Foundation.h>
@interface KNUtil : NSObject
/**
 把函数名隐藏在结构体里,以函数指针成员的形式存储。
 编译后,只留了下地址,去掉了名字和参数表,提高了逆向成本和攻击门槛
 */
typedef struct _util {
    void (*checkKNSign)(char *keys[], unsigned char *output);
}CheckKNSignUtil_t ;
#define ShareKNUtil ([KNUtil sharedUtil])
+ (CheckKNSignUtil_t *)sharedUtil;
  • 调用方法
ShareKNUtil->checkKNSign(key, output);

2.2、使用宏进行替换字符串

  • 根据前缀搜索出需要混淆的类名、方法名, 生成对应的宏文件
#define run OmWJoTZfCqoPshvr
#define iosre egnjoOFDrFiQVRgr

静态分析时hopper等反汇编工具无法根据string搜索到关键字符

III、see also

目录
相关文章
|
1月前
|
网络协议 Linux API
Linux网络编程:shutdown() 与 close() 函数详解:剖析 shutdown()、close() 函数的实现原理、参数说明和使用技巧
Linux网络编程:shutdown() 与 close() 函数详解:剖析 shutdown()、close() 函数的实现原理、参数说明和使用技巧
80 0
|
7月前
|
弹性计算 分布式计算 网络协议
聊聊复杂网络环境下hdfs的BlockMissingException异常|参数dfs.client.use.datanode.hostname
企业真实的网络环境是复杂多变的,在复杂的网络环境中部署并使用 hadoop 时,如果服务端的配置或客户端的使用不当,就可能会遇见各种问题。
聊聊复杂网络环境下hdfs的BlockMissingException异常|参数dfs.client.use.datanode.hostname
|
3月前
|
安全 网络协议 网络安全
深入解析Nmap:掌握所有参数的网络扫描之道
深入解析Nmap:掌握所有参数的网络扫描之道
24 0
|
4月前
|
机器学习/深度学习 TensorFlow 定位技术
神经网络学习率指数衰减ExponentialDecay策略的参数含义与使用方法详解
神经网络学习率指数衰减ExponentialDecay策略的参数含义与使用方法详解
|
6月前
|
安全 网络协议 网络安全
深入解析Nmap:掌握所有参数的网络扫描之道
深入解析Nmap:掌握所有参数的网络扫描之道
43 1
|
7月前
|
iOS开发
iOS开发 GET、POST请求方法:NSURLSession篇
iOS开发 GET、POST请求方法:NSURLSession篇
74 0
|
9月前
|
机器学习/深度学习 Python
基于麻雀搜索算法(SSA)优化长短期记忆神经网络参数SSA-LSTM冷、热、电负荷预测(Python代码实现)
基于麻雀搜索算法(SSA)优化长短期记忆神经网络参数SSA-LSTM冷、热、电负荷预测(Python代码实现)
152 0
|
9月前
|
移动开发 监控 API
漏刻有时API接口实战开发系列(10):海康威视、大华网络摄像头二次开发云直播和监控时技术参数的说明
漏刻有时API接口实战开发系列(10):海康威视、大华网络摄像头二次开发云直播和监控时技术参数的说明
470 0