самый легкий способ препятствовать тому, чтобы кнопка "Назад" Вашего браузера показала безопасные данные после пользователя, выходит из системы?

Проблема в том, что в столбце partner в df после большинства слов есть пробел:

.Label = c("Andrew", "Jim ", "Kurt ", "Lester ", "Mickey ", "Taylor ")

Это означает, что match() не найдет точное совпадение, кроме для имени «Андрей», для которого он правильно возвращает этот индекс.

Чтобы исправить это, удалите пробелы из столбца partner с помощью

df$partner = trimws(df$partner)

, тогда ваш код работает нормально:

> df[["partner"]] <- key[ match(df[['partner']], key[['name']] ) , 'id']
> df
  name heart_rate age partner
1   J9         78  35      M4
2   M4         82  23      J9
3   A3         67  43      T7
4   T7        105  52      A3
5   L4         85  33      K5
6   K5         94  45      L4
12
задан derick 17 October 2008 в 03:24
поделиться

6 ответов

Вот полезное руководство по кэшированию браузера.

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

 Cache-Control: no-cache
 Expires: Fri, 31 Dec 1998 12:00:00 GMT
5
ответ дан 2 December 2019 в 21:24
поделиться

Нет никакого идеального решения

Хотя существуют некоторые очень разумные решения этого (заголовки управления кэшем, JavaScript, и т.д.), необходимо понять, что, после того как Вы отправили что-то клиенту, он находится вне Вашего контроля. Вы не можете гарантировать, что клиент будет рассматривать данные в способе, которым Вы хотели бы.

Например:

  • в браузере могла быть ошибка
  • браузер мог бы позволить пользователям выключать управление кэшем
  • пользователь мог бы работать с отключенным JavaScript

Извините :(

3
ответ дан 2 December 2019 в 21:24
поделиться

Заголовки управления кэшем (Истекает, Управление Кэша, Завершающий тег) будут обычно предотвращать кэширование страницы, вынуждая браузер запросить новую копию, в которой точке можно проверить состояние сессии. Они иногда игнорируются в интересах "производительности" все же.

Существует два подхода JavaScript, которые могли помочь Вам:

  • Используйте событие выхода от своей страницы (onSubmit для форм или onUnload для других страниц) для очистки содержания при отъезде страниц.
  • Используйте document.location.replace () вместо нормальных ссылок при перемещении между страницами, чтобы не оставить след в истории браузера, к которой мог возвратиться пользователь.

Оба из них, вероятно, будут иметь довольно неприятный эффект на удобство использования все же.

3
ответ дан 2 December 2019 в 21:24
поделиться

Установите кэширующиеся заголовки для запрещения любого кэширования страницы вообще. Это должно предотвратить даже саму страницу от того, чтобы быть показанным, когда пользователь поражает кнопку "Назад", если они не зарегистрированы.

1
ответ дан 2 December 2019 в 21:24
поделиться

Зависит от Вашего решения для входа в систему (SSO - Windows Live / OpenID по сравнению с собственной разработки, где информация о входе в систему хранится, и т.д.)... С тех пор 'назад' обычно не запрашивает страницу снова, я предложил бы очистить формы в JavaScript (OnLoad). На стороне сервера можно затем заполнить их (Page_Load). Очистите свою сессию и состояние отображения после выхода из системы.

0
ответ дан 2 December 2019 в 21:24
поделиться

Я попробовал этот код VB.NET IE и Firefox.

Ответ. Кэш. SetAllowResponseInBrowserHistory (ложь) ответ. Кэш. SetCacheability (HttpCacheability. NoCache) ответ. Кэш. SetNoStore () ответ. Истекает = 0

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

1
ответ дан 2 December 2019 в 21:24
поделиться
Другие вопросы по тегам:

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