2009-04-10 221 views
0

我试图让我在另一个thread防止PHP脚本

基本上提出了一个问题,一些更多的信息,我用这个方法来传递参数给PHP脚本从服务器返回值:

NSString *urlstr = [[NSString alloc] initWithFormat:@"http://www.yourserver.com/yourphp.php?param=%d", paramVal]; 
NSURL *url = [[NSURL alloc] initWithString:urlstr]; 
NSString *ans = [NSString stringWithContentsOfURL:url]; 
// here in ans you'll have what the PHP side returned. Do whatever you want 
[urlstr release]; 
[url release]; 

然后我提出了这个问题。你如何确保'http://www.yourserver.com/yourphp.php'?您可以轻松导航到相同的脚本(如果您知道路径)并传入任何所需的参数。我错过了什么吗?

回答

0

不,你不会错过任何东西。那么,除了一个认证框架。 :)

PHP不是保护Web应用程序的最佳平台,但您可以使用Pear's Auth library

2
$_SERVER['HTTP_USER_AGENT']; 

会告诉你访问器的用户代理,但用户代理肯定是恶搞,能,你唯一的选择将是通过检查你知道永远不会通过它来传递某些字符来锁定帕拉姆,也许添加另一个(虚拟)peram只是为了增加一点安全性。除此之外,真的没有其他办法来保护它。

+1

用户代理和虚拟PARAMS不会在所有帮助,因为它是微不足道的嗅探这些和使用它们,比方说,一个网页浏览器。你想要类似TK所回答的内容。 – 2009-04-11 13:02:21

2

您可以使用传出数据的MAC一起发送。

这样可以避免使用完整的Auth框架(以及针对该问题的会话)。

然而,这很容易受到重复攻击,但肯定会验证消息来自您的应用程序。

http://en.wikipedia.org/wiki/Message_authentication_code

0

验证您在PHP端输入;如果任何输入有效,则生成一个密码,并在执行任何操作之前将该密码与要验证的参数一起传递。

他们的密码应尽可能临时,最好根据从一些数据的应用程序产生(即它不是存储),腌服务器随机数和服务器事先知道。