Контроль данных из формы

Статус
В этой теме нельзя размещать новые ответы.

ForJest

- свежая кровь
ONK
ONK, а сессионные куки в этом новом окошке сохраняются? Меня как понимаешь интересует практическое решение для данной задачи :)
 

asm

Пофигист
Я верю, что нужно проверять HTTP_REFERER и ставить себе Kerio Firewall, чтобы не подстрять на тех серверах, где этого не делают! ForJest - я с тобой, да! Пусть разум будет посрамлён,.. ДИСКОТЕКА! :););D

Прикольно
 

ONK

Пассивист PHPСluba
ForJest, да, с текущей сессией будут проблеммы, но например данный форум поддерживает автоматическую авторизацию...
:)

-~{}~ 10.08.04 15:18:

хотя нет, сессия должна перейти и в новое окно.
 

ZaZa

Guest
Мда, чуть что - сразу ZaZa... Не понять мне тебя, ForJest, в одном месте (http://phpclub.ru/talk/showthread.php?postid=366785#post366785) у тебя это панацея, в другом (http://phpclub.ru/talk/showthread.php?postid=367171#post367171) уже соглашаешся, что это не совсем надёжно... Кста, я тред прочёл, ненадо, ладно. Просто, если кто то будет такое делать - он постарается и реферрер забить. Тут уже это сказали правда...
Просто вся твоя теория опирается на то, что мы на стороне сервера не можем предсказать, и быть уверенным в том, что именно эти даннные правильные - следовательно пологаться на них. И остаётся часть юзеров без реферрера - следовательно защита не столь действующая, как бы тебе этого не хотелось и уязвимость осталась.
Да, я согласен - переколбасить форум/портал или чё там ещё, причём чужой на эту тему - дорогое удовольствие, но если это требуется - придётся делать. А те кто выберут 10 копеечную защиту - пускай теряют клиентов/юзеров.
На эту тему можно спорить долго и каждый будет прав, безсмысленно дальше продолжать дискусию/спор. Ну закроешь ты взлом на 80% случаев - хорошо, но 20% где? Ты ведь сам предлагаешь решение, оставляя в нём дыру для хака.
 

ONK

Пассивист PHPСluba
правда это может относиться только к текущему домену, вобщем надо тестировать поведение браузеров.

-~{}~ 10.08.04 15:26:

ZaZa, ты не прав, ценой < 1% пользователей можно надёжно и дёшево закрыть эту дыру. Надо просто немного доработать предложенный ForJest - ом алгоритм.
Это относится к затыканию дыр, но самому дыры можно (нужно) и не создавать.
 

ZaZa

Guest
ОК, ложите - потом интерестно будет посмотреть на вашу защиту по рефереру...
 

ForJest

- свежая кровь
ZaZa
Вот что ты пытаешься мне доказать? Что HTTP_REFERER проверять не нужно? Совсем не нужно?
Я пытаюсь доказать, что его проверять полезно и нужно вне зависимости от остальных способов защиты. Потому что если бы здесь стояла такая защита - этого длинного занимательно трэда бы не получилось, не находишь? Потому что я бы обломался искать новые дыры, вот и всё.
И если останется 20% (я не знаю сколько именно), может быть 1% - это уже будет эффективной защитой. Потому что 99 человек из ста кликнув на эту ссылку могут увидеть, что происходит что-то не то. И сказать об этом админитрации, не находишь? Так эффективна эта защита или нет? Когда придёт этот 1%? Первым? Последним? Придёт он до того, как те, кто защищены прокликают? После того? Будет ли жива эта ссылка? Так что не нужно рассуждать только категориями процентов - есть конкретный эффект - хаккер не может получить желаемого в большинстве случаев. А именно это и важно.

ONK
Реф передаётся на ура. Есть ещё способы?
PHP:
<?php
if (isset($_GET['new_win']))
{
?>
<form method='POST' action='http://service.com/ref_test.php'>
<input type='hidden' name='message' value='Fucking HTTP_REFERER!'>
</form>
<script language='JavaScript'>
document.forms[0].submit();
</script>
<?php 
}
else
{
?>
<script language='JavaScript'>
newwin = window.open('<? echo $_SERVER['SCRIPT_NAME'],'?new_win=1';?>', null , '');
</script>
<?php 
}
?>
-~{}~ 10.08.04 14:38:

Фанат
Я из желания светлого доброго вечного готов выслушать все разумные аргументы или даже выводы из иррациональной позиции.
 

ONK

Пассивист PHPСluba
ForJest, я этой проблеммой не занимался, вот ссылка которую я с ходу нашол

http://www.compromat.ru/main/internet/nakrutka.htm
 

Фанат

oncle terrible
Команда форума

ZaZa

Guest
ZaZa
Вот что ты пытаешься мне доказать?
Что проверка реферера это мёртвая технология.
Потому что если бы здесь стояла такая защита - этого длинного занимательно трэда бы не получилось, не находишь?
Нет - достаточно много людей с пустым реферером. У меня БЫЛА эта защита, только с ПУСТЫМ реферером я ПОСЫЛАЛ - на первых же клиентах посыпались жалобы на то что их не пускают - я ставил думп данных в файл на каждый пост - реферер у них был пустой... Твой бы трюк прошёл на ура. У них стояли фаерволы какие то, прокси или глюки броузера - каждому не исправишь.
хаккер не может получить желаемого в большинстве случаев
Ты думаешь хакер не знает об таких проверках? Просто может быть достаточно 1 что бы натворить такого, что результат будет ещё какой. Здесь с такой защитой - да - здесь народ образованный... Но ты вспомни - кто там сидит, на других форумах? Не каждый поймёт что там за попап и закроет его - а дело может уже сделано...

Дам тебе пример: PHP пропатчивает в определённых случаях(у клиента отрублены куки) линки сессиями, клиент на сайте sait.ru кликает на такую ссылку, которая ведёт на сайт hack.ru, реферер у нас от sait.ru с Ид сессии (допустим у нас идеальная ситуация) - hack.ru это ловит и формирует нужный пост на sait.ru с нужными реферерами и прочей лабудой и конечно чё там надо послати curlом посылает это всё... Потом редиректн на sait.ru. Да мы засветили свой ИП, но самое главное достигли - хаккнули...
Ваша защита как бы и оплашалась если к сессии проверка ИП не прикручена... От количества таких пользователей и посещаемости может зависить что получиться...

Можно пойти дальше имея СИД - считать форму и выловить даже какой то хеш, по которому субмитится информация... Но для этого надо хотябы 1 раз попасть внутрь системы...

Может теперь понятно, почему реферер мёртвый - его легче всего подделать.

А коль пошла такая пьянка - тут надо огромную FAQ писать на тему безопасности.
 

ONK

Пассивист PHPСluba
ZaZa, тот что ты описал, имеет место быть не только по отношению к рефереру, но и по отношению к одноразовым идентификаторам форм. За исключение одного НО, обычно сессии привязываются к ip адресам пользователей, именно так сделанно в этом форуме.
 

Кром

Новичок
>клиент на сайте sait.ru кликает на такую ссылку, которая ведёт на сайт hack.ru

ZaZa, ты не в курсе.
 

Фанат

oncle terrible
Команда форума
Да не тратьте вы время на идиота.
в треде достаточно много инфы. если кто не понял, то уже и не поймет.
только время тратить - каждому разжевывать
 

ZaZa

Guest
Автор оригинала: ONK
ZaZa, тот что ты описал, имеет место быть не только по отношению к рефереру, но и по отношению к одноразовым идентификаторам форм. За исключение одного НО, обычно сессии привязываются к ip адресам пользователей, именно так сделанно в этом форуме.
Об этом я сказал:
Ваша защита как бы и оплашалась если к сессии проверка ИП не прикручена
Кром, не в курсе чего?

Фанат, ненадоело?
 

ONK

Пассивист PHPСluba
Фанат, в посте ZaZa на самом деле приведён алгоритм реально позволяющий "подделать содержимое формы" средствами атакующего, то есть без использования браузера пользователя (в случае перехвата идентификатора сессии + при отсутствии приязки сессии к ip адресу).
Более того, в случае перехвата сессии есть и другой алгоритм "подделки данных формы" от которого с помощью реферера защититься нельзя. Правда тут я не рассматриваю "стиль windows" с контрольными вопросами "Вы уверены?".

Так что делаем вывод 100% защить форму с помощью проверки реферера и одновременно сохранить полную функциональность, невозможно (в отличии от одноразовых идентификаторов).
 

Фанат

oncle terrible
Команда форума
Ть твою мать, опять 25.
Во-первых, в посте заза написано, что он ни бельмеса не понял из того, как действует форджестов метод.
во-вторых, только идиот, извини, будет утверждать, что форджест говорит о "100% защите формы".
Но повторять его мысль я не буду.
До кого она не дошла, то не дйдет уже вовеки.
 

ZaZa

Guest
Бля, да ветом треде форджестов метод рассматривается как ПАНАЦЕЯ (сам форджест так говорил), как супер решение, и никакого внимания системе одноразовых идентификаторов, которая хотя бы как то это гарантирует безопастность. Рассматривается куча примеров когда он работает и даже примеры обхода и когда он не работает.
Просто это "надо проверять реферер" громко и красиво раскиданное по всему треаду и в чём тут так убеждают, дело конечно 0,0001 секунды, но бля проверять то, что заведомо будет подменено/убрано на случай реальной атаки - не стоит такого внимания и такой пены с доказательством что "надо проверять реферер". Ведь многие это признали, и всё равно продолжается раздувание этой идеи...

Хотя по... это дело... Всем прекрасно ясно что к чему - спасибо за внимание...
 

confguru

ExAdmin
Команда форума
ZaZa - получаете предупреждение...
Прочитайте правила форума еще раз..
 
Статус
В этой теме нельзя размещать новые ответы.
Сверху