2009-04-10 205 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端輸入;如果任何輸入有效,則生成一個密碼,並在執行任何操作之前將該密碼與要驗證的參數一起傳遞。

他們的密碼應儘可能臨時,最好根據從一些數據的應用程序產生(即它不是存儲),醃服務器隨機數和服務器事先知道。