2011-01-17 2 views
2

У меня есть веб-сайт, на одной странице он читает файл cookie с компьютера пользователя и использует его как переменную в php-коде, например, в статусах эха.Уязвимость для инъекций php cookie?

Я в настоящее время не готовлю кулинарию.

2 вопросы:

  1. кто-то может взломать их печенье, чтобы положить вещи в мой PHP-код?

  2. если да, то как я могу предотвратить это? Как я могу его очистить?

Спасибо!

+3

Покажите нам какой-то код о том, как вы используете свои файлы cookie. – Brad

+1

Не доверяйте куки. Их очень легко редактировать. Всегда проверяйте их содержимое перед их использованием. –

ответ

2

Да, это очень легко использовать в зависимости от того, как он используется в коде. Например, можно подделать весь запрос и предоставить любое желаемое значение для файла cookie.

Вопрос о том, как предотвратить это, зависит от того, какие значения вы ожидаете от файла cookie. Все, что вам нужно сделать, это убедиться, что значение cookie соответствует вашей спецификации. Не зная, что такое спецификация или как используется значение, говорить нечего.

6

Да, очень легко отредактировать файлы cookie на клиенте. Вы должны обрабатывать значения cookie как любой другой пользовательский ввод: не доверяйте ему и не проверяйте его.

+3

Все, что исходит от браузера, является подозрительным, будь то от GETS, POSTS, cookies и т. Д. Все это можно манипулировать. Проверьте это, * особенно *, если вы собираетесь использовать его в запросе базы данных. –

+1

+1. Вдоль этих строк вы должны шифровать значения cookie и дешифровать их только тогда, когда они вам понадобятся. См. Http://stackoverflow.com/questions/606179/what-encryption-algorithm-is-best-for-encrypting-cookies – NotMe

3

Если вы только echoing cookie, то уязвимость, которую может взорвать пользователь, называется «XSS», которая обозначает Cross Site Scripting. В основном он вставлял бы теги <script> на сайт, чтобы выполнить javascript.

Вы можете предотвратить это, используя функцию strip_tags в php для очистки тегов из файла cookie.

Если вы используете cookie каким-то другим способом, могут возникнуть новые проблемы с безопасностью, укажите, если это так.

+0

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

+3

ну, допустим, вы одолжили мне свой ноутбук, чтобы я мог попасть в facebook, я редактирую ваш файл cookie, вот и все. – amosrivera

+0

хороший звонок. Я об этом не думал. – aaronasterling

0

Как люди опубликовали cookie, очень легко манипулировать на стороне клиента. Это просто текстовый файл. Если вы только эхо и не зависите от данных в cookie для вызовов db, вызовы функций или файл включают в себя, вы, возможно, не нуждаетесь в заботе, потому что пользователь влияет только на то, что отображается на его локальной машине. Однако на общедоступных компьютерах это может быть проблемой. Если вы хотите, чтобы больше controll обрабатывало данные, используя сеансы serveride. Или, если вам действительно нужны данные в файле cookie, сохраните хэш значений cookue serverside, чтобы вы могли определить, имеет ли он bern подделал

1

Strip_tags не защищает вас от взлома и не снимает XSS. Он удаляет только HTML и вам не нужен HTML для XSS сайта.

+0

Это так. Clickjacking можно легко выполнить, если strip_tags, например, разрешают определенные теги, поскольку атрибуты не разделяются. –

0

Проблема заключается не во входе как таковом, а в том, как вы его выводите. Если вы echo прямо на HTML-страницу, то вам нужно закодировать HTML-код; это верно для всех строк, которые вы включаете в HTML-страницу, а не только файлы cookie. Если вы являетесь привычкой выводить неэкранированные строки в HTML, вам, вероятно, гораздо легче использовать ошибки XSS, чем это (*).

Способ правильно обрабатывать переменный текст для вывода в HTML - это обернуть каждую переменную в htmlspecialchars() в точке, в которой вы эхо в HTML (а не как шаг обработки ввода).Не используйте strip_tags() - он не разработан как мера безопасности, и он не срабатывает в самых разных обстоятельствах. Если вам нужно принять ограниченную пользовательскую разметку, используйте библиотеку очистителя HTML.

(*: как использование HTML-инъекции-из-файла cookie во многом зависит от того, как этот файл cookie установлен. В любом случае злоумышленник может убедить ваше приложение установить конкретное значение cookie другого пользователя, легко будет использоваться, иначе, чтобы использовать HTML-инъекцию, они должны были бы найти ошибку для исправления cookie. Это может быть ошибкой в ​​заголовке в вашем приложении, или это может быть любое уязвимое приложение в «соседнем домене», -на заявке на a.example.com может установить файл cookie, который будет считаться приложением по адресу b.example.com.)

Смежные вопросы