2015-04-21 3 views
0

Я создаю приложение для iOS в Интернете. Просто скажите, моя система, как показано ниже.Swift - как вы можете создать веб-приложение?

  1. пользовательского ввода его имя на приложение
  2. приложение POST это "destination.php"
  3. "destination.php" сохраняет принятый POST к БД

О рынке сторона приложения, код 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». Другими словами, если кто-то зло находит URL-адрес «destination.php», он может легко испортить систему с помощью некоторых скриптов (например, отправляет тонны данных на php).

Есть ли какие-либо хорошие способы обеспечения такого рода соединения?

+2

Я бы сказал, что это не вопрос о Swift или iOS. О чем вы спрашиваете, как безопасно использовать HTTP, и это еще одна тема. –

+0

Используйте 'NSURLSession'. Намного лучше API. – dasdom

ответ

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 
} 
+0

О, вот в чем дело. Спасибо! Я пытался реализовать этот путь, но не добился успеха. Есть ли у вас какие-либо хорошие решения, чтобы узнать, успешно ли выполнена моя аутентификация или нет? (т. е. показывая сообщение об ошибке) – stackgk

+0

Если ваш счастливый @stackgk, пожалуйста, отметьте этот ответ как правильный. –

Смежные вопросы