Вопросы безопасности о файлах cookie и javascript - PullRequest
2 голосов
/ 14 января 2011

Хорошо, я всегда задавался вопросом, возможны ли эти 2 действия:

  1. Чтобы манипулировать куки. Я имею в виду, если я войду, например, в Facebook, это сохранит cookie в моем браузере. Могу ли я редактировать его в любом случае? Я так думаю, поскольку он установлен в МОЕМ браузере, а не установлен локально.
  2. Для манипулирования сценарием JavaScript. Я имею в виду, поскольку javascript читается браузером и каждый пользователь может читать язык, можно ли его редактировать? Например, допустим, у меня есть вызов ajax, который отправляет строки данных типа user=basic или что-то (это просто пример), может кто-то изменить его на user=admin?

Я надеюсь, что такого рода вещи невозможны, или я в значительной степени f **** d!

Ответы [ 6 ]

6 голосов
/ 14 января 2011

В этом случае, я сожалею, что вы в значительной степени f **** d.

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

Firefox делает это очень просто, используя расширение Редактировать файлы cookie для файлов cookie и Firebug для редактирования JavaScript (а также HTML и CSS).

2 голосов
/ 15 января 2011

Я думаю, что изменение файлов cookie должно быть довольно простым, поскольку они хранятся локально. Я проверил, и в Firefox есть куча файлов sqlite, которые, кажется, имеют это. Я мало что знаю о sqlite, но похоже, что их изменение не должно быть проблемой (тем более, что в этом случае вы можете получить исходный код браузера и посмотреть, как он взаимодействует с ними :))

Я не уверен насчет модификации javascript, это, безусловно, можно сделать, возившись с низкоуровневыми HTTP-компонентами (перехват запросов и отправка поддельных ответов с измененным кодом). Политики анти-межсайтового скриптинга немного помогают, но я бы не стал на них сильно полагаться, для безопасности должен быть сервер проверок безопасности.

2 голосов
/ 15 января 2011

Как пользователи, так и javascript могут манипулировать данными cookie. Тем не менее, посредники имеют дополнительную (может быть, по умолчанию) защиту от настройки междоменных данных cookie.

1 голос
/ 15 января 2011

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

Единственное, что вы действительно можете безопасно хранить в cookie - это логин токен .По сути, каждый раз, когда ваш пользователь входит в систему, генерируйте что-то вроде GUID .Сохраните GUID в столбце в записи пользователя (например, LoginToken или что-то еще), а затем установите для его файла cookie тот же GUID.Когда они выйдут из системы, очистите запись LoginToken.Затем, когда приходит запрос, вы можете просто запросить в вашей базе данных пользователя, у которого LoginToken равно значению в cookie.Можно с уверенностью предположить, что, удерживая токен, запросчик фактически является пользователем, представленным токеном.

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

На сервере, когда вы проверяете токен, вы затем определяете, есть ли у этого пользователя права администратора (обычно, посмотрев наих запись).

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

1 голос
/ 15 января 2011

2 вещи:

  • Проверяйте данные на стороне клиента для удобства использования, но также делайте это на стороне сервера, чтобы предотвратить вмешательство кого-либо в данные
  • Шифровать куки, чтобы им было сложнее манипулировать
1 голос
/ 15 января 2011
  1. Да / Нет, ваш домен может управлять только файлами cookie, установленными вашим доменом. Ваш JS-скрипт, находящийся на youdomain.com или localhost, не может редактировать cookie, установленный на facebook.com. Подумайте об этом, Интернет взорвался бы сейчас, если бы вы могли это сделать.

    Однако пользователи могут редактировать свои куки по своему желанию.

  2. Да.

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