我需要针对iOS应用中的网页进行身份验证。
我将用户的用户名和密码存储在应用中。我可以使用以下网址访问该页面:
的https:/xxxxxxxxxxxx/names.nsf登录&安培;用户名= XXXXXXXX&安培;密码= xxxxxxxx3&安培; redirectto = websiteURL /布赖恩/ Approve.nsf / m_approval.xsp
当然我用用户的名字和密码替换xxxx。
但是,我知道这不是很安全,因为当我检查我的服务器时,我看到的是带有用户名和密码en clair的URL。从阅读和研究中我相信我应该使用Base64对URL进行编码然后发送。但我无法弄清楚如何做到这一点。
以下代码是尝试。我尝试更改URL以取出用户名密码,但这不起作用。
我真的很感激有关该怎么做的帮助。
NSURL *url = [NSURL URLWithString:@"https://xxxxxx/"
@"names.nsf?login&username=xxxxxxxx&password="
@"xxxxxxxx3&redirectto=https://xxxxxx"
@"Bryan/Approve.nsf/m_approval.xsp"];
NSString *authStr =
[NSString stringWithFormat:@"%@:%@", @"xxxxxx", @"xxxxxxxx"];
NSData *authData = [authStr dataUsingEncoding:NSUTF8StringEncoding];
NSString *authValue =
[NSString stringWithFormat:@"Basic %@", [authData base64Encoding]];
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url];
[request setValue:authValue forHTTPHeaderField:@"Authorization"];
[self.webView loadRequest:request];
答案 0 :(得分:2)
两件事:
1.使用Base64进行编码只是一种编码,它不是加密,也没有安全性
2.由于您使用的是https,因此连接是安全的。为什么你觉得你需要更多的安全性。
真正的安全问题是如何在应用程序和服务器中保护密码。