Swift - 如何构建基于Web的应用程序?

时间:2015-04-21 10:42:47

标签: ios swift

我正在创建一个基于Web的iOS应用程序。 简单地说,我的系统如下所示。

  1. 用户在应用中输入他的名字
  2. 应用将其发布到“destination.php”
  3. “destination.php”将收到的POST存储到数据库
  4. 在应用程序方面,Swift代码如下所示。

    let strData = parameter.dataUsingEncoding(NSUTF8StringEncoding)
    let url = NSURL(string:"http://example.com/destination.php")
    let request = NSMutableURLRequest(URL: url!)
    request.HTTPMethod = "POST"
    request.HTTPBody = strData
    NSURLConnection.sendAsynchronousRequest(request, queue:NSOperationQueue.mainQueue()){(res, data, err) in
        //do something
    }
    

    我已经确认它运行良好,但从安全的角度来看,我对此并不满意,因为应用程序和“destination.php”之间没有安全授权。换句话说,如果有人查找了“destination.php”的URL,他可以轻松地用一些脚本搞乱系统(例如,将大量数据发布到php)。

    有没有什么好方法可以保证这种连接安全?

1 个答案:

答案 0 :(得分:0)

在您的服务器上设置基本身份验证,并使用类似的内容来构建您的请求。

func request(url: NSURL) -> NSURLRequest {
    var request = NSMutableURLRequest(URL: url)
    request.setValue(self.authorisation(), forHTTPHeaderField: "Authorization")
    request.HTTPMethod = "GET"
    return request
}

func authorisation() -> String {
    let string = "stuff".stringByAppendingFormat(":%@", "password")
    let data = string.dataUsingEncoding(NSASCIIStringEncoding)
    let encodedString = data?.base64EncodedStringWithOptions(NSDataBase64EncodingOptions.Encoding76CharacterLineLength)
    let returnValue = "Basic".stringByAppendingFormat(" %@", encodedString!)
    return returnValue
}