作者:christinezzy850 | 来源:互联网 | 2023-05-19 05:54
(1)GET和POST说明——从URL分析看,GET是不安全的,POST相对更安全一点。——从服务器看,GET是安全的,POST不太安全。注意:尽管利用POST请求时用户无法直接看到数据体,但是通过f
(1)GET和POST说明
——从URL分析看,GET是不安全的,POST相对更安全一点。
——从服务器看,GET是安全的,POST不太安全。
注意:尽管利用POST请求时用户无法直接看到数据体,但是通过firebug等插件,还是可以截取POST请求的数据体的,所以POST也并非很安全。
解决办法:就是加密。(当用户点击注册或者登陆提交之后,所有数据都应该是加密后的数据,这样即使被截取,破译难度也会增加)
(2)所有网络请求统一使用异步请求,以防阻塞,即使用:
NSURLConnection sendAsynchronnousRequest
(3)GET和POST请求步骤
GET
——NSURL,一般是NSURL *url=[NSURL URLWithString:[NSString stringWithFormat:@"http://localhost:/login.php?username=%@&password=%@",self.u,self,p]];
——NSURLRequest
——NSURLConnection,在block中可以把data数据转换成str格式,输出查看结果。
POST
——NSURL,这里的URL不带参数,一般是http://localhost/login.php
——NSMutableRequest *request,这里的可变request时关键。
——设置方法,默认是GET,request.HTTPMethod=@"POST"
——设置数据体,request.HTTPBody=[str dataUsingEncoding...]这里的HTTPBody是data格式,这里的str可以用firefox截取查看post内容从而来模拟
(4)一般不使用NSURLConnection的代理方法delegate,因为这个技术比较古老,部分功能可以被发送异步连接代替。
(5)密码原则
——不要在本地存储用户安全相关的信息
——数据传输时,都不能明文,也最好不要传输于用户信息安全相关的数据
(6)md5加密,是不可逆的。但是相同的数据加密后的md5码是相同的,所以可以借助http://www.cmd5.com这一类网站,对一些简单地密码进行破解。
(7)利用公钥和私钥的原理进行md5加密,即,获取到用户的信息后(比如是一个字符串str1),然后和公司自己的私钥(一个字符串str2),拼接成一个新的字符串str3,再对这个str3进行md5加密,因为这个私钥str2可能极其复杂,所以尽管用户的密码很简单,但是想要对md5进行破译则几乎难度很大(当然,如果用户密码很简单,那么直接猜估计都会比破译省力的多)。
加密的代码可以在网上搜索:(1)http://blog.csdn.net/z251257144/article/details/8291992;(2)http://www.cocoachina.com/bbs/read.php?tid=97570
大概是:
-(NSString *)MD5{
const char *cStr=[self UTF8String];
unsigned char digest[CC_MD5_DIGEST_LENGTH];
CC_MD5(cStr, strlen(cStr), digest);
NSMutableString *result=[NSMutableString stringWithCapacity:CC_MD5_DIGEST_LENGTH*2];
for (int i=0; i [result appendFormat:@"%02x",digest[i]];
}
return result;
}