2011-02-04 30 views
1

我有一臺服務器和許多客戶端。驗證必須在服務器上完成。當用戶提交ID和密碼時,它通過post方法發送,服務器對其進行身份驗證併發送statues消息(有效/無效)。這樣做不安全。首先我雖然,我應該使用一些令牌系統,如Facebook如何。所以,幫助我在這裏發佈了一些問題。如果我想遵循令牌系統,我已經被建議使用openId。我經歷了它,但它非常複雜。我不需要那麼複雜。在php中使用fsockopen捲曲的驗證系統

然後我雖然fsockopen。一旦提交表格,它就會成爲客戶端系統中的一個功能。從這個功能我發送和接收數據。

$url = 'http://www.server.net/auth_system/test'.'/'.$email_id.'/'.$password.'/'.$site_id; 

    $fp = fsockopen($url_parsed['host'],"80",$err_num,$err_str,30); 
    fputs($fp, "POST $url_parsed[path] HTTP/1.1\r\n"); 
    fputs($fp, "Host: $url_parsed[host]\r\n"); 
    fputs($fp, "Content-type: application/x-www-form-urlencoded\r\n"); 
    fputs($fp, "Content-length: ".strlen($post_string)."\r\n"); 
    fputs($fp, "Connection: close\r\n\r\n"); 
    fputs($fp, $post_string . "\r\n\r\n"); 

在服務器:

$status = Database...($email_id, $password, $site_id);    
        echo "<br>split-delimiter".$email_id."split-delimiter<br>"; 
        echo "split-delimiter".$status."split-delimiter"; 

**請告訴我,我就是我做的是正確的?有沒有更好的辦法?怎麼使用捲曲?

回答

0

最近我和我的好朋友有着非常不同的觀點。他還認爲openID複雜,他喜歡自己做認證。

複雜

但是我對你(和他)的問題是:

  • 你發現了什麼複雜的關於OpenID。我真的看不到它。當您使用友好的OpenID界面時,我認爲它很簡單/友好。看看在stackoverflow的登錄。你認爲認證很複雜嗎?我沒有看到任何複雜性。

爲什麼你不應該做認證

爲什麼我覺得你不應該做的認證:

  • storing your passwords safely is hard和說實話,我一直在尋找很多這個最近,我覺得密碼學是非常複雜(有些部分我不能完全包容我的想法)。佩思:我想你還應該閱讀這個非常有趣的文章,解釋傑夫阿特伍德(Stackoverflow作者)的Lifehacker got hacked

圖書館

我更願意喜歡編寫的Node.js(JavaScript的)最近則PHP,但我創建了一個小library它使用非常簡單LightOpenID庫結合OpenID的選擇,使其友好。您只需克隆存儲庫,即可開始使用。在我看來,簡直就是地獄。我喜歡做更多的提交(我不認爲會有更多的提交),還可以使用myopenid.com創建一個OpenID帳戶(就像stackoverflow.com)一樣簡單。

您可以在我的小PHP PHP虛擬主機提供商http://westerveld.name/php-openid/上查看一個可用的示例(它只是一個簡單的git克隆,它保持與github的最新狀態)。它看起來像下面的截圖:

enter image description here

P.S:我仍然認爲,當我做一對夫婦更犯庫將是一個不錯的狀態。在我看來,這已經很不錯了。

+0

你誤會我提到使用openID的複雜性。使用openID很簡單。但重量我的意思是。像openID一樣創建系統如何驗證ID。它如何安全地發送迴應。 – aparna 2011-02-04 08:23:56