Как стать автором
Поиск
Написать публикацию
Обновить

Комментарии 17

А если не нравится но хочется, то разрешаешь помучаться?

НЛО прилетело и опубликовало эту надпись здесь

А как в таком случае сделать CSRF в GET запросе или это он и есть?

CSRF не нужен в GET запросах. CSRF предназначен для защиты от несанкционированного (пользователем) изменения данных, а GET данные менять не должен.

Наверное, глупый вопрос, но всё-таки. Можно ли сделать расширение для браузера, которое будет:
  1. Сливать с клиента (браузер с установленным расширением, владелец которого зашёл на ФБ) пары ссылок на отдельные посты в ФБ в формате "[нормальная ссылка, ссылка курильщика]"
  2. Сохранять слитые данные на сервере, где вместо id будет нормальная ссылка
  3. Дать возможность другим клиентам переходить по ссылке курильщика с рандомным, но чужим fbclid

Догадываюсь что по тем или иным причинам это сделать нельзя, но хотелось бы посмешивать им там рекламные профили, чтобы перестали нести чушь про парсеры. В последнее время такая наглая ложь воспринимается как-то более болезненно, что ли.
Так нельзя сделать, потому что «ссылка курильщика» уникальная для каждого юзера. Чтобы расшифровать её в «нормальную ссылку», надо по ней перейти, а это значит, засветиться, что этот юзер посмотрел эту страницу.
Чтобы расшифровать её в «нормальную ссылку», надо по ней перейти
Да вроде как не обязательно, вот смотрите:
Мы имеем группу «Ghack Technology News», ссылка на неё выглядит так "facebook.com/ghacksnet/", я только что проверил что она рабочая, и самое главное — я уже могу собирать ссылки курильщика из загруженной веб-страницы. Теперь пофантазируем:

Ссылка на конкретный пост для меня выглядит так:
"facebook.com/ghacksnet/%SMOKER_LINK_FOR_EIMRINE_POST_12345%".
Ссылка на конкретный пост для вас выглядит так:
"facebook.com/ghacksnet/%SMOKER_LINK_FOR_QW1_POST_12345%".
То что я ошибочно назвал «нормальной ссылкой» на самом деле не ссылка, а идентификатор, идентифицировать будем конечно же по таймстампу с точностью которую можно получить из веб-сайта. Условный пример записи в БД для одного такого идентификатора, для которого зафиксированно две ссылки курильщика:
key="fbgroup:ghacksnet,time=1658913166"
value1="SMOKER_LINK_FOR_EIMRINE_POST_12345"
value2="SMOKER_LINK_FOR_QW1_POST_12345"


Ну и наконец, если где-то будет сервер который будет хранить всё это ссылочное барахло, то задача получения рандомной но чужой ссылки будет сводится к тривиальным действиям:

Я, как обычно, делаю клик мышкой по ссылке "facebook.com/ghacksnet/%SMOKER_LINK_FOR_EIMRINE_POST_12345%"

Мой браузер, вместо того чтобы выполнить переход по вышеуказанной ссылке, на уровне расширения браузера, вычисляет из ссылки курильщика данные key такие как "group:ghacksnet,time=1658913166" и отправляет их на сервер

Сервер присылает мне рандомную но чужую ссылку курильщика, пусть это будет
"facebook.com/ghacksnet/%SMOKER_LINK_FOR_QW1_POST_12345%"

Ну и суть всего этого мероприятия чтобы свести с ума алгоритм фейсбука когда я, eimrine, благодаря браузерному расширению, перейду по ссылке которая была сформированна для совершенно случайного юзера, например qw1. Всё что может мне помешать — если в ссылке "facebook.com/ghacksnet/%SMOKER_LINK_FOR_QW1_POST_12345%" будут храниться такие данные которые заставят меня перелогиниться как qw1, что по понятным причинам неприемлемо. Но вроде как «такие данные» хранятся не в GET-параметрах (какими ссылка курильщика и является), а в куках — т.е. идея должна получиться.

Надеюсь, описание не слишком сумбурное. Я уже давно думаю о мульти-функциональном расширении для браузера, которое превратит отношения веб-сайтов с юзерами из парадигмы «меч против щита» в парадигму «меч против меча» начатую расширениями ad nauseum и unfollow everything.
Не понял, откуда берётся timestamp.
Если это timestamp поста на фейсбуке, то в одном посте может быть несколько зашифрованных ссылок, и как их отличать, если у них общий timestamp?

Чисто теоретически, расширение может фиксировать в своей внешней базе место, откуда был произведён переход. То есть что-то типа id-поста=123456, 3-я ссылка сверху. И когда другой юзер кликает по 3-й ссылке указанного поста, а кто-то уже прокликал раньше, сервер отдаёт пользователю расшифрованную ссылку.

Тут у меня возникла идейка, что нужно зарегать бота, который бы со своего аккаунта проходил бы через такие ссылки и складывал бы результаты в базу. Пусть фейсбук следит за ботом, не жалко.
свести с ума алгоритм фейсбука когда я, eimrine, благодаря браузерному расширению, перейду по ссылке которая была сформированна для совершенно случайного юзера
Да это ерунда. Фейсбуку при ресолве ссылки ничего не стоит сверить текущего юзера в сессии и юзера, которому предназначена ссылка. Он всё равно ходит в своё key/value хранилище для декодирования ссылки, так можно в value класть не только URL, но и id юзера, которому он предназначен.

Не совпадает — переход на страницу-заглушку или на таргетированную рекламную страницу, вот уж вопрос, кто кого сведёт с ума.
Догадываюсь что по тем или иным причинам это сделать нельзя
Это очень похоже на слив истории. Расширениям категорически недопустимо сливать историю, я помню, как какое-то расширение выпнули на мороз за то, что в нём была опция «помогите автору, включите эту опцию, чтобы передавать все посещённые ссылки» (каким образом это бы помогло автору, не уточнялось, расширение представляло собой обычный переводчик).
Не, ну это уже совсем наглёж передавать всю посещённую историю.
Если передавать только зашифрованные ссылки, то может и прокатить.
А ещё лучше, как я писал комментарием выше, передавать ID поста и порядковый номер ссылки, которую надо расшифровать. Тут вроде совершенно не похоже на слив истории.

Никогда такого не было и вот опять, ага.

Что случится, если я попрошу друга скинуть мне ссылку на новость? Он скопирует её со своим личным ключём слежения получается. То тогда моё посещение зачтётся ему получается? И главное что он никак не может предотвратить это даже если хочет. Если раньше опытный пользователь мог удалить мусор из ссылки перед тем как посылать другу, то теперь это сделать никак.

Фейсбук ломает понятие веб-паутины и URL. И он это делает лишь потому, что им пользуются миллионы людей и не могут отказаться.

Мне никогда не нравилась эта вещь кого кто-то скидывает ссылку, а к ней прикреплены параметры слежения, из-за чего ссылка становится километровой длины.

Я бы хотел расширение которое показывает чистую ссылку всегда. Взять тот же сокращатель t.co во-первых, этот сайт не всегда доступен без vpn, во-вторых хотелось бы видеть что скрывается под ссылкой сразу virus.xxx/download.exe или ru.wikipedia.org/article/123. Да, ссылки t.co не уникальные, но их без посещения сайта расшифровать нельзя.

Придётся сначала пройти по ссылке, чтобы её расшифровать, и только потом передавать другу. Для facebook логично было бы сделать такой UI, чтобы ссылки не копировались (запрет контекстного меню по правой кнопке).

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

А это уже интереснее. То есть, по сути мы с сайта фейсбука не ушли, а получаем контент через его окошко. Как AMP у Гугла/Яндекса. Вот за такое проксирование можно наверное и засудить.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Другие новости