"Защита" от САР

Статус
В этой теме нельзя размещать новые ответы.
PS: Фильтровать данные из $_GET надо ещё раз на стороне скрипте, тоже регулярками(`preg_match`).
Это обязательно. :read:
...
Ночной тупизм: :)))))))
2jacksoft Это тут причем?
Конечно понятно что реализация ТС в 99% используется для iframe трафика, но все таки не только для него..
Могут быть инвайты, самописная ТДС и многое другое..
Это я так, к слову. Что не по теме пишешь.

Ну добавь еще обязтельную проверку размера передаваемых данных.
А не по теме - удали ;)
 
Млин, промучался уже больше часа, но так ничего и не вышло :(

Вот строка из .htaccess:
RewriteRule ^([0-9]+)/([A-Za-z0-9\.\/%&=\?\-_]+)/$ to.php?user=$1&url=$2

С первой частью, где передается user=$1, всё окей, там должно передаваться числовое значение. А вот со второй частью, где должен передаваться url=$2, у меня проблемы, не могу составить правильный фильтр символов для ссылок. Помогите, пожалуйста :thenks:

Мне нжуно сделать так, чтоб ссылки имели вид:
Код:
http://site.ru/[I][U]1564[/U][/I]/[I][U]http://google.com[/U][/I]
, где
Код:
1564
- id пользователя, которому зачислится бонус
Код:
http://google.com
- сайт, который откроется во фрейме...

Буду очень благодарен!
 
кодируй адрес сайта в md5. так будет лучше и простой юзер не сообразил какой сайт открывается во фрейме. И реврайт получится такой:
RewriteRule ^([0-9]+)/([A-Za-z0-9]+)/$ to.php?user=$1&url=$2
 
В том то и дело, что юзер должен знать, что открывается во фрейме, так что кодирование мне не подходит...

Вот какую систему я пишу:
В: Зачем нужен префикс?
О: Он нужен для учета переходов по ссылкам.
В аккаунте Вы получаете персональный префикс к ссылкам.

Пример: Ваш ID в системе - 11.
Значит префикс для Ваших ссылок будет выглядеть так:
Для просмотра ссылки Войди или Зарегистрируйся

В: За что я получаю деньги?
О: Вы получаете деньги за каждый уникальный переход по Вашей ссылке. Перед ссылками, которые Вы оставляете в блогах, форумах, жж и других комьюнити ставьте префикс Вашего аккаунта.

Пример:
Вы хотите оставить ссылку на сайт Для просмотра ссылки Войди или Зарегистрируйся.
Вот так будет выглядеть готовая ссылка:
Для просмотра ссылки Войди или Зарегистрируйся

Пояснения:
11 - это Ваш ID в системе.
Для просмотра ссылки Войди или Зарегистрируйся - адрес сайта, на который Вы хотите оставить ссылку.
 
Для просмотра ссылки Войди или Зарегистрируйся - это имхо неправильно. ты где-нить хоть видел ссылки такого типа? ты протокол 2 раза объявляешь. Если хочешь чтоб юзер видел какой сайт он смотрит, выводит адрес сайта текстом вне фрейма и все.
 
Неужели никто не можут помочь? :(
Ну или хотяб чтоб ссылки были такого типа:

На вскидку (не тестировал, но логика такая).
RewriteRule ^(.*)/([0-9]+)/([A-Za-z0-9#\-_\+\.]+)$ to.php?user=$2&url=$3
 
На вскидку (не тестировал, но логика такая).
RewriteRule ^(.*)/([0-9]+)/([A-Za-z0-9#\-_\+\.]+)$ to.php?user=$2&url=$3

Большое Спасибо!

Но вот как быть, есть в нужном url есть "/" , "&" и "?" ?

Например это работает отлично:
Код:
http://lincker.ru/3/google.com

А вот как быть с этим? :
Код:
http://lincker.ru/3/google.com/calendar/render?hl=ru&tab=wc
 
Большое Спасибо!
Но вот как быть, есть в нужном url есть "/" , "&" и "?" ?
Например это работает отлично:
Код:
http://lincker.ru/3/google.com
А вот как быть с этим? :
Код:
http://lincker.ru/3/google.com/calendar/render?hl=ru&tab=wc
вот так:
RewriteRule ^(.*)/([0-9]+)/([A-Za-z0-9#\-_\+\.\/&\?=]+)$ to.php?user=$2&url=$3
дам тебе совет. так как в целевом урле тоже может присутствовать /312/ (цифры) то лучше сразу пеерстраховаться и сделать у себя
передачу Ид не просто цифрами, а еще и заглушкой. Например:
PHP:
http://lincker.ru/i123d/google.com/calendar/33/render?hl=ru&tab=wc
и тогда хтаксес будет выглядеть:
RewriteRule ^(.*)/i([0-9]+)d/([A-Za-z0-9#\-_\+\.\/&\?=]+)$ to.php?user=$2&url=$3
и шансов наступить на грабли уменьшаются... ;)
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху