Forum Webscript.Ru
Программирование => Perl => Тема начата: restart2003 от 27 Января 2004, 02:00:55
-
Для большей секурности своего форума решил в скрипт ответа/создания новой темы всунуть проверку refferer, чтобы параметры не передавались с посторонних сайтов. Пока сделал через if($ENV{HTTP_REFERRER} =~ /$forum_url/i). Но ведь никто не мешает передать скрипту параметры со страницы http://xakep.ru/hack.html?урл_моего_форума. Отсюда плавно вытекает вопрос: как проверить, что искомая строка не находится после знака \'?\', т.е. является не параметром, а реальным урл-ом. Только с помощью регэкспов?
-
f($ENV{HTTP_REFERRER} =~ /^\\Q$forum_url\\E/i)
-
все зависит от того что содержится в $forum_url если http://www.myurl.com то так
/^\\Q$forum_url\\E/i
только тогда не будут валидными запросы с http://myurl.com ( если конечно это одно и тоже )
если $forum_url содержит myurl.com то
=~m%^http(s)?://(www\\.)?\\Q$forum_url\\E%
а вообще не возлагай сильную защиту на реферрер
-
Alone
У меня и с www и без работает. Особых надежд на реферрер я и не возлагаю, так, "защита от дурака" :)