PHP - Защита URL-адресов POST из приложения iOS

115
12

Пожалуйста, простите меня за мое невежество заранее, я новичок, когда дело доходит до PHP. Приложение iOS, с которым я экспериментирую, имеет уже построенный PHP API, который делает запросы как таковые:

NSURL *url = [NSURL URLWithString:[NSString stringWithFormat:@"http://beta.myapp.com/api/addUser.php?id_user=%@&user_email=%@&user_f_name=%@&user_l_name=%@&user_mobile=%@", iduser, email, fName, lName, mobileText]];

NSMutableURLRequest *request=[NSMutableURLRequest requestWithURL:url];
NSOperationQueue *queue = [[NSOperationQueue alloc] init];

[NSURLConnection sendAsynchronousRequest:request queue:queue completionHandler:^(NSURLResponse *response, NSData *data, NSError *error) {

if (error) {
NSLog(@"Error,%@", [error localizedDescription]);

} else {

// Do some stuff

}

}];

Однако этот URL-адрес будет уязвим для всех, кто находит URL-адрес, чтобы просто вводить любые данные, которые они хотят через веб-браузер, не так ли?

Как я могу защитить эти запросы, чтобы кто-то не мог ввести этот URL с их собственными параметрами в адресную строку?

спросил(а) 2016-08-18T19:34:00+03:00 4 года, 2 месяца назад
1
Решение
99

Один из способов сделать это - сделать ваш PHP API HTTPS-подключением, требуя, чтобы правильный заголовок авторизации выполнял запрос POST. Вы передаете заголовок авторизации следующим образом:

//Auth header
NSString *authStr= [NSString stringWithFormat:@"%@:%@",usernameOfAdmin,passwordOfAdmin];
NSData *authData = [authStr dataUsingEncoding:NSASCIIStringEncoding];
NSString *authValue = [NSString stringWithFormat:@"Basic %@", [authData base64EncodedStringWithOptions:NSDataBase64EncodingEndLineWithLineFeed]];
[request setValue:authValue forHTTPHeaderField:@"Authorization"];

Затем у вас могут быть учетные данные администратора, необходимые для каждого запроса POST. И вы даже можете использовать алгоритм шифрования, чтобы убедиться, что ваши пользователи iOS не улавливают имя пользователя и пароль. Когда правильная регистрация выполняется из вашего приложения iOS, вы должны использовать эти учетные данные. Кто-то, кто обращается к вашему API PHP, не будет знать имя пользователя и пароль.

ответил(а) 2016-08-18T20:02:00+03:00 4 года, 2 месяца назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема