php中的身份验证系统使用fsockopen curl

时间:2011-02-04 06:24:55

标签: php authentication curl fsockopen

我有一台服务器和许多客户端。身份验证必须在服务器上完成。当用户提交id和密码时,它通过post方法发送,服务器对其进行身份验证并发送状态消息(有效/无效)。这样做不安全。首先,我应该使用一些令牌系统,如facebook如何。所以,为了帮助我在这里发布了一些问题。如果我想要跟随令牌系统,我被建议使用openId。我已经完成了它,但它非常复杂。我不要求那么复杂。

然后我虽然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";

**请告诉我,我在做什么是正确的?有更好的方法吗?怎么用curl?

1 个答案:

答案 0 :(得分:0)

最近我和我的好朋友有着截然不同的看法。他还认为openID很复杂,他喜欢自己做身份验证。

复杂性

但我对你(和他)的问题是:

  • 你觉得OpenID有什么复杂之处。我真的看不到它。当您使用友好的OpenID界面时,我认为它很简单/友好。看看stackoverflow的登录信息。你觉得认证很复杂吗?我没有看到任何复杂性。

为什么不进行身份验证

为什么我认为您不应该进行身份验证:

  • storing your passwords safely is hard说实话,我最近一直在研究这个问题,我认为密码学非常复杂(有些部分我无法完全理解)。 P.S:我想你也应该阅读这篇非常有趣的文章,解释Jeff Atwood(Stackoverflow作者)的Lifehacker got hacked

我更喜欢最近编写node.js(JavaScript)然后编写PHP,但我创建了一个小library,它使用极其简单的LightOpenID库和openid-selector来使其友好。您只需克隆存储库即可开始使用。在我看来简直如此。我喜欢做几个提交(我认为还有更多的提交即将到来),也可以使用myopenid.com创建一个OpenID帐户非常容易(就像stackoverflow.com一样)。

您可以在http://westerveld.name/php-openid/的小型PHP虚拟主机提供商上查看一个工作示例(它只是一个与github保持同步的简单git克隆)。它看起来像下面的截图:

enter image description here

P.S:我仍然认为当我做更多的提交时,图书馆将处于一个非常好的状态。我认为这已经很不错了。