система аутентификации в php с помощью fsockopen curl - PullRequest
1 голос
/ 04 февраля 2011

У меня есть сервер и много клиентов. аутентификация должна быть сделана на сервере. когда пользователь отправляет идентификатор и пароль, он отправляет почтовым методом, а сервер аутентифицирует его и отправляет сообщение со статуями (действительный / не действительный). делать это небезопасно. сначала я должен использовать систему токенов, например, как это делает facebook.so, для справки я разместил здесь несколько вопросов. Мне предложили использовать 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 голосов
/ 04 февраля 2011

В последнее время у меня совсем другое мнение с моим хорошим другом. Он также считает, что openID сложен, и ему нравится выполнять аутентификацию самостоятельно.

Сложность

Но мой вопрос к вам (и к нему):

  • что вы считаете сложным в OpenID. Я действительно не вижу этого. Когда вы используете дружественный интерфейс OpenID, я думаю, что это легко / удобно. Посмотрите на вход в систему stackoverflow. Вам было сложно пройти проверку подлинности? Я не вижу никакой сложности вообще.

Почему вы не должны делать аутентификацию

Почему я думаю, что вы не должны делать аутентификацию:

  • безопасно хранить ваши пароли и, честно говоря, в последнее время я много разбираюсь в этом и считаю, что криптография чрезвычайно сложна (некоторые части, о которых я просто не могу полностью вспомнить). P.S: Я думаю, вам также следует прочитать эту очень интересную статью, объясняющую, как Lifehacker был взломан Джеффом Этвудом (автор Stackoverflow).

Библиотека

В последнее время я очень люблю кодировать node.js (JavaScript), а не PHP, но я создал небольшую библиотеку , которая использует чрезвычайно простую библиотеку LightOpenID в сочетании с openid-selector, чтобы сделать ее дружественной. Вы просто клонируете репозиторий и готовы к работе. Просто чертовски по моему мнению. Мне нравится делать еще пару коммитов (я не думаю, что будет еще больше коммитов), чтобы также было очень легко создать учетную запись OpenID с помощью myopenid.com (так же, как stackoverflow.com).

Вы можете просмотреть рабочий пример (это просто простой клон git, который постоянно обновляется с github) на моем маленьком провайдере PHP-хостинга по адресу http://westerveld.name/php-openid/. Это выглядит примерно так, как на скриншоте ниже:

enter image description here

П.С .: Я все еще думаю, что когда я сделаю еще пару коммитов, библиотека будет в довольно хорошем состоянии. На мой взгляд, это уже довольно хорошо.

...