2011-02-04 73 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