Как можно предотвратить доступ Javascript к данным файлов cookie PHP? - PullRequest
10 голосов
/ 19 апреля 2011

(взято с собеседования)

Какие из следующих ответов верны?

  • Используйте параметр httponly при настройке cookie
  • Пользователь должен отключить поддержку Javascript
  • Это настройка cookie в браузере
  • Только выдавший домен может получить доступ к cookie-файлу
  • Один на клиенте, а другой на сервере, так что это не проблема

Ответы [ 4 ]

6 голосов
/ 19 апреля 2011

Когда заголовок cookie установлен, вы можете указать httpOnly.

Это можно сделать с помощью функции PHP setcookie:

setcookie ( $name, $value, $expire, $path, $domain, $secure, $httponly )

httpOnly инструктирует браузер не разрешать JS доступ к cookie.

4 голосов
/ 19 апреля 2011

Правильный ответ первый:

Use the httponly parameter when setting the cookie

Этот флаг запрещает (в совместимых браузерах, почти всем, включая IE> = 6sp1) движок javascript в браузере для доступа к файлам cookie с этим параметром. Вы можете установить этот флаг для обычных файлов cookie с помощью setcookie и для сеансовых файлов cookie с помощью session_set_cookie_params .

отредактировано: поддержка IE> = 6sp1 вместо IE> = 7

1 голос
/ 19 апреля 2011

Cookies - это концепция HTTP, а не концепция PHP.PHP может создавать и изменять файлы cookie, но такого понятия, как «PHP COOKIE», не существует.Браузер не заботится о том, был ли ответ сгенерирован PHP, Python или perl cgi.

При попытке определить, что может быть реальным вопросом, возможны следующие варианты:

  1. Файл cookie для хранения идентификатора сеанса в браузере
  2. файл cookie, отправленный с помощью setcookie

Ставлю на вопрос 1. Я понимаю, что правильный вопрос должен был быть:

"Почему на стороне клиента, использующей javascript или любой другой метод, невозможно просматривать или изменять информацию, хранящуюся в сеансе PHP?"

Тогда ответ таков:

«Потому что, даже если в сеансах PHP используются файлы cookie, эти файлы cookie используются только для хранения идентификатора сеанса, а не содержимого сеанса. Содержимое сеанса хранится на сервере, а не в самом файле cookie».

1 голос
/ 19 апреля 2011

куки на стороне клиента .....?

Пользователь должен отключить поддержку Javascript - агрессивно

Используйте параметр httponly при установке файла cookie - возможно, правильный ответ, но, как уже было сказано ранее ... есть обходные пути, я полагаю

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...