我正在创建一个基于Web的iOS应用程序。 简单地说,我的系统如下所示。
在应用程序方面,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)。
有没有什么好方法可以保证这种连接安全?
答案 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
}