Iphone ios中的安全http调用

Iphone ios中的安全http调用,iphone,ios,ios5,ios6,Iphone,Ios,Ios5,Ios6,我如何确保每次从我的应用程序启动http调用时的安全,并且它需要有超时,以便任何其他用户都无法从任何浏览器使用相同的链接 我寻找的是ios解决方案,而不是html表单 请帮帮我。无法解决此问题,并且不知道要朝哪个方向继续 提前谢谢 我附加了PHP和ios的工作代码,它们发布请求并返回响应,但没有附加任何安全性,任何用户都可以通过随时从浏览器调用相同的HTTP响应来获得相同的响应 ios代码: NSURL *url=[NSURL URLWithString:@"http://example

我如何确保每次从我的应用程序启动http调用时的安全,并且它需要有超时,以便任何其他用户都无法从任何浏览器使用相同的链接

我寻找的是ios解决方案,而不是html表单

请帮帮我。无法解决此问题,并且不知道要朝哪个方向继续

提前谢谢

我附加了PHP和ios的工作代码,它们发布请求并返回响应,但没有附加任何安全性,任何用户都可以通过随时从浏览器调用相同的HTTP响应来获得相同的响应

ios代码:

    NSURL *url=[NSURL URLWithString:@"http://example.com/getmsgs/strno=123"];

    NSURLRequest *request=[NSURLRequest requestWithURL:url];

    connection=[NSURLConnection connectionWithRequest:request delegate:self];

    if(connection){

        webData=[[NSMutableData alloc]init];

    }


NSError *requestError = NULL;

NSDictionary *allData=[NSJSONSerialization JSONObjectWithData:webdata options:0 error:&requestError];


if (requestError){
    //An error occurred.
    NSLog(@"error is : %@",requestError);
}

if (! allData) {
    NSLog(@"Got an error: %@", requestError);
} else {
    NSLog(@" data is : %@",allData) ;
}



NSArray *arrayOfEntry=[allData objectForKey:@"json"];

for (NSDictionary *diction in arrayOfEntry) {


    NSString *label=[title objectForKey:@"image"];

    NSString *label2=[title objectForKey:@"artist"];

    NSString *label3=[title objectForKey:@"name"];

    [array addObject:label];
        [array addObject:label2];
            [array addObject:label3];

}
php代码:

<?php

    $strno=$_GET['strno'];

    if (isset($strno))
    {
            $connect=mysql_connect("localhost","test","test") or die ('Connection error!!!');
            mysql_select_db("test") or die ('Database error!!!');

        $query=mysql_query("select sno FROM users  where strno='$strno';");
        while($row = mysql_fetch_assoc($query))

        {
            $jsonoutput='{"json":{
                "image":"'.$row['image'].'",
"artist":"'.$row['artist'].'",
"name":"'.$row['name'].'"
                }}';
        }

    }

    echo trim($jsonoutput);
    mysql_close($connect) or die ('Unable to close connection-error!!!');
    }

    ?>

您可以使用某种会话来实现您想要的。例如,当用户打开(运行)ios应用程序时,您可以连接到web服务以获取会话密钥(令牌),该密钥对于正在运行应用程序的设备来说是唯一的。而且,当您的ios应用程序转到后台时,您可以使令牌无效(在这里使用ios后台执行是合适的)。此外,您可以使用有时间限制的会话密钥,例如,您的会话密钥将在10分钟后过期(在服务器端失效),对于新的web请求,您的服务器必须发出另一个会话密钥。祝你好运

谢谢你的回答。你能编辑上面的代码和你的解释吗。这将是一个很大的帮助。提前谢谢。詹姆斯,我说的是很多代码,这就是为什么我不能提供代码。但这里的主要思想是,在服务器端有设备身份验证方法,该方法将设备唯一字符串(可能还有一些参数,如时间戳等,取决于您的实现)作为参数,生成唯一会话密钥并返回到ios应用程序。将来对服务器的所有请求都将该唯一字符串(会话密钥)作为参数,以便服务器能够识别设备。这将为您对服务器的请求提供一些基本的安全性。如果其他人知道该唯一字符串,他可以使用该字符串并在浏览器中粘贴带有该唯一字符串的链接,然后继续执行以下请求,会发生什么情况?我是否也可以停止该操作?也许您可以共享指向使用上述描述的示例/项目的链接我已经提到。这将大大有助于我的实施,我可以在之后再与您联系,进一步询问。非常感谢您的帮助。