Pull to refresh

Comments 30

Простите за мою тупость, но что такое поддельная ссылка и зачем от них защищаться?
Наверное, типа фигни как «для восстановления пароля».
бывает важно чтобы ты знал что это твоя ссылка,
например защита от встраивания на чужой сайт.
токены?
подтверждение мыла, восстановление пароля, еще куча вещей.
А не проще это сделать на стороне приложения? Я всетаки думаю, что это для защиты файлов от скачивания, или что-то подобное.
основное назначение — запрещение прямых ссылок на файлы с чужих сайтов.
Типа зашел на сайт — можешь скачать файл; скопировал прямую ссылку и послал другу — у него не работает.
А разве нельзя в запрос приписать реферер с корнем сайта или что-то вроде?
В первую очередь для того, чтобы быть уверенными, что ссылка сформирована именно вашим приложением.
Переходы по «левым» ссылкам используются для того, чтобы перегрузить бэкэнд или забить кеш nginx.
Если ссылка невалидная, то запрос до бэкэнда просто не дойдет.
Также уменьшается риск от sql-injection (так как злоумышленник не имеет возможности изменить параметры).

На PHP есть отличная библиотека HTTP_UrlSigner от Дмитрия Котерова: dklab.ru/lib/HTTP_UrlSigner/
Вы всерьез предлагаете пихать в каждый url кусок непонятной фигни, вместо нормальной работы с базой? А как быть с поисковиками? Кто-то узнает ваш секретный ключ, вы поменяете его в целях безопасности и сайт моментально выпадет из индекса.
Нормальную работу с базой никто не отменял. Но даже профессионалы допускают ошибки, а в случае же такого дополнительного эшелона обороны эксплуатации уязвимости будет существенно затруднена.
Если узнали ваш секретный ключ — значит злоумышленники получили доступ к исходному коду приложения на вашем хосте, что говорит о серьезных проблемах безопасности.
Схема подписи url достаточно широко распространена и общепринята, посмотрите хоть на Яндекс Маркет.
> Если узнали ваш секретный ключ — значит злоумышленники получили доступ
> к исходному коду приложения на вашем хосте, что говорит о серьезных
> проблемах безопасности.
Ну говорит, и? Взломали вас, узнали ключ, вы закрыли дыру, что дальше? Меняете ключ — сайт вылетает из индекса. Не меняете — ваша защита рушится.

> посмотрите хоть на Яндекс Маркет.
Посмотрел, не увидел.
Посмотрите на то, как выглядят ссылки на товары (по которым осуществляется переход на страницы магазинов)

http://market-click2.yandex.ru/redir/GAkkM7lQwz6kEtXSvIPZ1pBp6WPs4XQLa-BxMEn9Wi4Bcs3zInCad3l6IwJap6nZmbF_pTg6o5q5u9HnQapByJnk19tG6aXswQa2AOxrkzBiuktpwqeI5_ot_JD49Iq5Zvzl-9hnFeSqILc2z4-wuzv37HjFfdHag3Qj7RKx2kpJgWQ-Ozt16nFqS0F5ntjRIguIIWg_yNBnVrNTuEV83pU8WsVCy0R5f4LX2RD9F_1Ob9z7pZkfjX0Q3oR1weVT?data=QVyKqSPyGQwwaFPWqjjgNvZTe7It9MxftkcZYMdf94rx-Mc_xE6i_IERl2JCZl06qnFhBgkwoYnORHLAvnQ8VHmVVc5Cmu3Oz9lQ9_oBY-J5uTAu4ebBTpy8flRGfKa5&b64e=2&sign=180d1d0b4ee9a438e4dcc058595dc7de
&keyno=1


Попытка измения любого из параметров приведет к редиректу на главную яндекса.
Ну вы же сами показали, что не правы. Не для уменьшения нагрузки на бекенд, ни для предотвращения забивания кеша, не для защиты от инъекций это не используется.
спасибо, хорошая статья, как раз начинаем прикрычивать этот модуль.
/p/HASH,TIMESTAMP/ANYTHING где
PASSWORD секретный пароль

s/p/PASSWORD/?
«оффициальной»… Хочется рыдать…
Да ладно вам. У нас вот президент проффесор, и ничего, как-то он не особо беспокоится ;)
ээээ… не плачте — исправил!
UFO just landed and posted this here
С начала марта этого года использую подобное решение. Вообще, статья — перепечатка исходника по ссылке №2. — все тоже самое, только на английском. И это, кстати, вполне себе официальная документация.
«The information provided on this wiki is the work of volunteers.»
wikipedia официальная документация по сборке холодильника «Беларусь»?
это сделано для того что бы напримено нельзя было простым перебором скачать файл, зная его имя.

К.О
содержащая значение после запятой из 'secure_link' = TIMESPAMP


%s/TIMESPAMP/TIMESTAMP/g
а ничего, что в версии
0.8.51 27.09.2010
Изменение: директива secure_link_expires упразднена.
У меня был сделан патч, чтобы можно было использовать пустую ссылку, т.е. чтобы просто считать md5 от параметров из GET или Cookie и не указывать после хэша вообще ничего, ну в крайнем случае просто /secure/hash/?arguments…
Хотел написать статью но карма не позволяет :)
эээ… а что потом сверять с хэшем?
работа с args и cookies уже реализованна в стандартном secure_link, читайте документацию внимательней
Sign up to leave a comment.

Articles