PHP - 从iOS App保护POST URL

时间:2016-08-18 16:34:55

标签: php ios objective-c post

请提前原谅我的无知,我是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                        

     }

}];

但是,如果发现网址的任何人只是通过网络浏览器输入他们想要的任何数据,那么此网址就会受到攻击,对吗?

如何保护这些请求,以便某人无法将自己的参数输入到地址栏中?

1 个答案:

答案 0 :(得分:0)

实现此目的的一种方法是使您的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应用程序执行正确的注册后,您将使用这些凭据。访问PHP API的其他人不会知道用户名和密码。