繁体   English   中英

编码iOS基本身份验证

[英]Encode iOS Basic Authentication

我需要针对我的iOS应用中的网页进行身份验证。

我在应用程序中存储了用户的用户名和密码。 我可以使用以下URL转到页面:

https:/xxxxxxxxxxxx/names.nsf?login&username = xxxxxxxx&password = xxxxxxxx3&redirectto = websiteURL / Bryan / Approve.nsf / m_approval.xsp

当然,我用用户名和密码替换了xxxx。

但是,我知道这并不是真正安全,因为当我检查服务器时,看到带有用户名和密码的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];

两件事情:
1.使用Base64编码只是一种编码,不是加密,也不提供安全性。
2.由于您正在使用https,因此连接是安全的。 为什么觉得您需要更高的安全性。

真正的安全问题是如何在应用程序和服务器中保护密码的安全。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM