Существует способ препятствовать cookie то, чтобы быть украденным?

Для этого вы можете использовать модуль xlsx-populate , например:

const XlsxPopulate = require('xlsx-populate');

XlsxPopulate.fromBlankAsync().then(workbook => {
    workbook.sheet("Sheet1").cell("A1").value("Some sample text");
    return workbook.toFileAsync("./test.xlsx", { password: "$secret_password" });
});

В результате в рабочей книге пользователю потребуется ввести правильный пароль, если он хочет получить доступ это.

8
задан SquareCog 21 November 2008 в 01:59
поделиться

6 ответов

KISS - просто используйте сессии так, чтобы Вы использовали идентификатор, который уже автоматически создается языком сценариев серверной стороны по Вашему выбору. Это достаточно трудно предположить. Затем если это украдено, сохраните IP-адрес и агент пользователя посетителя на сессии (удостоверяющийся никогда не производить это) и только считайте сессию допустимой, только если уже сохраненный IP-адрес и соответствие агента пользователя то, что найдено для удаленного клиента.

В этом сценарии взломщик должен был бы сделать следующие три вещи:

  1. Украдите cookie жертвы
  2. Имитируйте корректный IP-адрес
  3. Имитируйте корректный Агент пользователя

Это также помогает удостовериться, что взломщик уже не знает все вещи, которые он должен был бы сделать для корректного принятия сессии жертвы. IE: Они могут предположить просто, что cookie необходим, и затем перестали работать... и имеют для выяснения всего остального посредством очень длинного метода проб и ошибок. Таким образом Вы получаете безопасность через мрак и через трудность, в зависимости от навыка взломщика и его имеющихся знаний системы.

7
ответ дан 5 December 2019 в 08:26
поделиться

Поместите крышку на банку cookie.

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

1
ответ дан 5 December 2019 в 08:26
поделиться

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

Единственным главным образом безопасным путем я могу думать, должен использовать HTTPS, чтобы поместить и проверить "постоянный" cookie и затем поместить (в ту же сессию HTTPS) недолгие сеансовые куки. Остальная часть коммуникации может быть сделана по регулярному HTTP, с помощью сеансовых куки для аутентификации.

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

Все, что быть сказанным - не позволяет пользователям нажать "remember me" на сайт, который содержит действительно уязвимые данные! Вот почему Банки не делают этого..

Надеюсь, это поможет.

6
ответ дан 5 December 2019 в 08:26
поделиться

О хранении сложных идентификаторов cookie и связанного дюйм/с в базе данных - Вы не должны действительно делать этого. Если у Вас есть секретный ключ K, достаточно зашифровать IP пользователя с Вашим K и поместить результат {IP} K как cookie. Пока Ваш ключ безопасен (и crypto не был поврежден - но если это происходит, у нас есть большие проблемы), это безопасно.

3
ответ дан 5 December 2019 в 08:26
поделиться

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

На втором чтении это кажется на желание высокого уровня безопасности связанными руками. У пользователя должен быть выбор остаться, вошел в систему, и таким образом увеличьте его риск. Можно реализовать всю безопасность в мире с точки зрения приложения и сервера, но если пользователь забудет их ноутбук относительно таблицы в Tim Horton (канадский Starbucks), то ни один из него не принесет Вам пользы.

Оставьте выбор до пользователя относительно того, остаются ли они, вошел в систему, и дайте им предупреждение об их находящейся в опасности информации.

1
ответ дан 5 December 2019 в 08:26
поделиться

Bernd - Вы говорите, что соединение IP-адреса к cookie не является опцией, я предполагаю, что это - b/c, пользователь мог быть соединен через DHCP и таким образом мог войти под другим IP каждый раз. Вы рассмотрели связь cookie к названию хоста DNS? Вы могли зашифровать cookie с помощью закрытого ключа и сохранить его на поле пользователя. Затем каждый раз, когда они входят, проверьте cookie, не зашифруйте его и затем проверьте текущее название хоста DNS пользователя по тому в cookie. Если это соответствует, Вы позволяете им войти. В противном случае Вы не позволяете автовход в систему.

К вашему сведению - в ASP.NET, для получения названия хоста DNS поля пользователя, просто взгляд на

Page.Request.UserHostName
0
ответ дан 5 December 2019 в 08:26
поделиться
Другие вопросы по тегам:

Похожие вопросы: