Jump to content
  • 0

Куки средствами PHP -- насколько это безопасно?


IceBars
 Share

Question

Можно ли просмотреть и изменить куки, отправляемы через РНР? А если через секретный протокол?

Для форума надо, чтобы автоматическая авторизация была, а то не у всех IP постоянный. А ява-скрипт кукам я не доверяю.

И как вообще лучше осуществить автоавторизацию?

Link to comment
Share on other sites

8 answers to this question

Recommended Posts

  • 0
Можно ли просмотреть и изменить куки, отправляемые через РНР?

Можно. Ибо куки есть куки как бы они поставлены не были, а именно куки - это текстовая информация в текстовом файле.

А если через секретный протокол?

Через SSL в смысле? SSL тут ничего не даст, так как шифруется информация непосредственно перед отправкой, дешифруется перед просмотром. То есть в браузере будет все тот же стандартный код.

Для форума надо, чтобы автоматическая авторизация была, а то не у всех IP постоянный. А ява-скрипт кукам я не доверяю. И как вообще лучше осуществить автоавторизацию?

Могу предложить такой вариант (в принципе широко используемый): берем N-параметров HTTP заголовка + M-служебных значений форм + какой-нибудь набор символов. извлекаем из них хешь какой-нибудь необратимой функции (md5, sha1) и этот хешь ставим как значение куки. потом получаем его, проделаваем то же самое и сравниваем.

Например: $sCookie=md5($_SERVER['REMOTE_ADDR'].'dSLmkWopFPryq01kdD45'.$_SERVER['HTTP_USER_AGENT']);

Вот примерно так. Но есть маленький прикол: за одним и тем же компьютером могут сидеть разные люди. В основном сотрудники "деляться" своим логином и паролем к компьютеру с соседом, подменяющим на время отпуска и т.д. посему может быть казус: подменяю я например Иванова; значитца нормально загрузил его комп (под его логином-паролем); открываю его браузер; захожу на форум...; и меня залогинело как Иванова, ну а я хотел быть самим собой, т.е. Сидоровым :)

С другой стороны практически все браузеры предлагают автозаполнение форм.

Но можно например сократить авторизацию только до пароля (логин береться из куки)

Link to comment
Share on other sites

  • 0
Через SSL в смысле? SSL тут ничего не даст, так как шифруется информация непосредственно перед отправкой, дешифруется перед просмотром. То есть в браузере будет все тот же стандартный код.

Не, я имел ввиду параметр ф-ии SetCookie.

Link to comment
Share on other sites

  • 0

Куки это данные, посылаемые клиенту и возвращаемые клиентом серверу.

Как и всему, что выходит за пределы сервера в полной мере им доверять нельзя.

Никакой разницы в безопастности JS- или PHP-кук на этом уровне нет.

Link to comment
Share on other sites

  • 0
Не, я имел ввиду параметр ф-ии SetCookie.

а-а-а... но может копнуть в мануал?

setcookie

(PHP 3, PHP 4, PHP 5)

setcookie -- Send a cookie

Description

bool setcookie ( string name [, string value [, int expire [, string path [, string domain [, bool secure [, bool httponly]]]]]] )

...

secure - Indicates that the cookie should only be transmitted over a secure HTTPS connection. When set to TRUE, the cookie will only be set if a secure connection exists. The default is FALSE

...

то бишь кука должна быть передана только по HTTPS (SSL) и только когда защищенное соединение установлено для основного контента. т.о. не подходит вариант.

Link to comment
Share on other sites

  • 0

А если зашифровать пароль и передать по кукам?

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

Link to comment
Share on other sites

  • 0

Пароль в куках хранить катастрофически неправильно. Когда, например, на форуме пользователь при авторизации ставит галку "помнить меня" достаточно хранить в куках какой нидь идентификатор пользователя. Так при перхвате злоумышленником кука он по крайней мере не будет знать пароля жертвы, хотя и сможет получит доступ к сайту под именем жертвы. И сменить пароль он тоже не сможет если нормально сделать механихм изменения пользовательского профиля, когда на дейсвие пользователя, зашедшеко с помощью куков, предлагается ввести пароль.

А передавать ли куки по SSL или открыто - никакой разницы, так как украсть куки проще с компа, когда они уже установлены, нежели по линии передачи.

Нет, ну конечно можно хранить пароль и в куках, используя шифрование, но все конечно зависит от того места где стоит авторизация. Для всяких форумов это, имхо, ненужная заморочка. А там где действительно важна секретность пароля нужно тада и регистрацию проводить по SSL или с помощью шифрования с открытым ключем.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. See more about our Guidelines and Privacy Policy