Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #11 (permalink)  
Старый 31.03.2018, 13:42
Аватар для Белый шум
Профессор
Отправить личное сообщение для Белый шум Посмотреть профиль Найти все сообщения от Белый шум
 
Регистрация: 19.01.2012
Сообщений: 505

brizing,
тогда у вас как-то неправильно токен реализован, ибо такой запрос должен выдавать страницу авторизации. Правильный запрос должен выглядеть как-то так:
$.get('/account?token=jtd9876vglijhkyrf53phj0');
- конкретное значение токена хранится в сессии, а ссылки с токеном присутствовать только на страницах админки (после авторизации).
Ответить с цитированием
  #12 (permalink)  
Старый 31.03.2018, 16:24
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,584

Белый шум,
Если "админ после авторизации" зайдёт на страницу на том же домене с "юзерским" скриптом - то всё, гейм овер, скрипту доступно всё.
brizing,
Для недоверенных скриптов - только другой домен. Помимо очевидных вариантов, что вам указали, есть ещё сотни неочевидных.
__________________
29375, 35
Ответить с цитированием
  #13 (permalink)  
Старый 31.03.2018, 18:19
Аватар для Белый шум
Профессор
Отправить личное сообщение для Белый шум Посмотреть профиль Найти все сообщения от Белый шум
 
Регистрация: 19.01.2012
Сообщений: 505

Aetae,
токены не должны содержаться в ссылках на неадминскую часть сайта (или где-либо ещё в неадминской части).
Ребята, ну вы чего - токенов никогда в действии не видели?
Ответить с цитированием
  #14 (permalink)  
Старый 31.03.2018, 18:49
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,584

Белый шум, это ты путаешь.
Юзер заливает скрипт в /user, админ логинется в /admin и идёт в /user, скрипт с /user спокойно запрашивает /admin и забирает токены. Конец.
Токены защищают от csrf, важное тут cs - cross site. В пределах сайта это никакой защиты не даёт.
__________________
29375, 35

Последний раз редактировалось Aetae, 31.03.2018 в 18:54.
Ответить с цитированием
  #15 (permalink)  
Старый 31.03.2018, 18:58
Аватар для Белый шум
Профессор
Отправить личное сообщение для Белый шум Посмотреть профиль Найти все сообщения от Белый шум
 
Регистрация: 19.01.2012
Сообщений: 505

Aetae,
ещё раз: если скрипт с /user запрашивает /admin, то в ответ получает страницу авторизации. Смысл токенов в том и состоит, что получить его можно только при авторизации, после чего его нужно передавать при каждом запросе к админской части сайта:
- запросил /admin?token=jtcvbliugkbk - получил содержимое страницы
- запросил /admin - получил сообщение "неверный токен" и форму авторизации
Ответить с цитированием
  #16 (permalink)  
Старый 01.04.2018, 13:25
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,584

Белый шум, откуда админ возьмёт этот ваш jtcvbliugkbk?
Из куки? /user имеет доступ к куки.
Из ссылки в теле страницы? /user имеет доступ к телу страницы.
Человек переходя на /admin каждый раз заново авторизуется, а переходя по любой другой внутрисайтовой ссылке авторизацию теряет? Никто так делать не будет, т.к. неудобно. При том всё равно, если у такого "админа" случайно окажется висеть открытая вкладка с /user при заходе на /admin, то, как только авторизация пройдёт, скрипт с /user повторяющийся с интервалом получит все доступы.
__________________
29375, 35
Ответить с цитированием
  #17 (permalink)  
Старый 01.04.2018, 13:54
Аватар для Белый шум
Профессор
Отправить личное сообщение для Белый шум Посмотреть профиль Найти все сообщения от Белый шум
 
Регистрация: 19.01.2012
Сообщений: 505

Сообщение от Aetae
откуда админ возьмёт этот ваш jtcvbliugkbk?
Из тела страницы в админке. Тупо все ссылки на админскую часть сайта уже идут с правильным токеном; ссылки на юзерскую часть - без токена (обычно их открывают в новой вкладке).
Сообщение от Aetae
/user имеет доступ к телу страницы.
/user - не админская страница, соответственно у неё нет доступа к токену.
Сообщение от Aetae
Человек переходя на /admin каждый раз заново авторизуется, а переходя по любой другой внутрисайтовой ссылке авторизацию теряет? Никто так делать не будет, т.к. неудобно.
Именно так и делают. Админская часть в одних вкладках, юзерская - в других. Немного неудобно, согласен, зато безопасно.
Сообщение от Aetae
При том всё равно, если у такого "админа" случайно окажется висеть открытая вкладка с /user при заходе на /admin, то, как только авторизация пройдёт, скрипт с /user повторяющийся с интервалом получит все доступы.
Не получит, ибо нет доступа к токену.
Ответить с цитированием
  #18 (permalink)  
Старый 01.04.2018, 14:38
Аватар для brizing
Интересующийся
Отправить личное сообщение для brizing Посмотреть профиль Найти все сообщения от brizing
 
Регистрация: 08.02.2014
Сообщений: 23

Соглашусь, /admin?token=jtcvbliugkbk - это неудобно и, допустим, это крайний вариант.

Замечу также, что ссылка /admin?token=jtcvbliugkbk не должна давать доступ с другого устройства. Т.е. нужно ещё устанавливать авторизационную куку. Если кукак И токен валидные, выдавать админку.

Однако, document.referrer на странице /user может содержать "/admin?token=jtcvbliugkbk".
Чтобы этого избежать, на странице /admin необходимо размещать ссылку:
<a href="/redir?/user" target="_blank">

Последний раз редактировалось brizing, 01.04.2018 в 14:41.
Ответить с цитированием
  #19 (permalink)  
Старый 01.04.2018, 14:39
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,584

Белый шум,
Ну если ещё защитить referrer при переходе из админской части в юзерскую, то, наверное, такой колхоз работать будет, да.
Токен в каждой ссылке - жуть какая.
И всё равно яб такое использовать не стал, не ровен час очередная фича js поломает всю такую супер-безопасность.
__________________
29375, 35
Ответить с цитированием
  #20 (permalink)  
Старый 01.04.2018, 15:27
Аватар для brizing
Интересующийся
Отправить личное сообщение для brizing Посмотреть профиль Найти все сообщения от brizing
 
Регистрация: 08.02.2014
Сообщений: 23

Даже при наличии в админке ссылки /redir?/user,
админ может, находясь на странице /admin?token=jtcvbliugkbk, вставить в адресную строку ссылку /user, перейти туда и будет доступен document.referrer (ой, ниже подсказали, что не будет).

Сервер должен блокировать /user, если HTTP_REFERER == /admin

Последний раз редактировалось brizing, 01.04.2018 в 16:47.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
XMLHttpRec + History API Ариан AJAX и COMET 0 12.12.2016 14:17
Посоветуйте как улучшить код для работы с history api [ jquery + js + history api ] Geo Ваши сайты и скрипты 0 12.01.2014 00:41
Проблемы с пониманием History API Flaker AJAX и COMET 5 06.02.2013 15:28
History API. Помогите решить проблему InviS Events/DOM/Window 2 16.10.2011 14:34
Фиксирование событий History API Bebarr Swallow Events/DOM/Window 1 20.06.2011 01:49