Вопросы и ответы по программированию.
- GanGSISoft
- Полковник
- Сообщения: 1430
- Зарегистрирован: 27.03.2008
- Откуда: Бацькаўшчына
- Благодарил (а): 2 раза
- Поблагодарили: 3 раза
- Контактная информация:
MOZGIII
Можно подробнее?, а то я не понял. И что такое "форджери"?
Можно подробнее?, а то я не понял. И что такое "форджери"?
- NiGHt-LEshiY
- Полковник
- Сообщения: 10258
- Зарегистрирован: 13.06.2008
- Откуда: Россия
- Благодарил (а): 752 раза
- Поблагодарили: 2667 раз
- Контактная информация:
GanGSISoft
Это значит, что он знает крутые слова.
Это значит, что он знает крутые слова.
Кодекс поведения участников сообщества — обязательно к прочтению.
Просьба присылать сообщения об ошибках в ЛС.
Просьба присылать сообщения об ошибках в ЛС.
-
- Разработчик
- Сообщения: 910
- Зарегистрирован: 09.01.2009
- Откуда: Переезжаю в /dev/null
- Благодарил (а): 7 раз
- Поблагодарили: 65 раз
- Контактная информация:
GanGSISoft
NiGHt-LEshiY
http://en.wikipedia.org/wiki/Cross-site_request_forgery или http://ru.wikipedia.org/wiki/%D0%9F%D0% ... 0%BE%D0%B2
Добавлено спустя 2 минуты 34 секунды:
В русской статье описаны варианты защиты, так вот первый уже не актуален.
Добавлено спустя 17 минут 4 секунды:
Суть проста: редирект на страницу, которая задаётся на клиентской стороне (путём указания ссылки как параметра запроса или использование реферрера) создаёт уязвимость XSS, который можно эксплуатировать для перенаправления клиента на фишинговый сайт.
Если сайт ещё и уязвим к CSRF (то самое форджери) и при этом для перенаправления используется параметры запроса, то эксплуатацию уязвимости можно провести немного легче.
Мораль: храните цель редиректа в сессии.
NiGHt-LEshiY
http://en.wikipedia.org/wiki/Cross-site_request_forgery или http://ru.wikipedia.org/wiki/%D0%9F%D0% ... 0%BE%D0%B2
Добавлено спустя 2 минуты 34 секунды:
В русской статье описаны варианты защиты, так вот первый уже не актуален.
Добавлено спустя 17 минут 4 секунды:
Суть проста: редирект на страницу, которая задаётся на клиентской стороне (путём указания ссылки как параметра запроса или использование реферрера) создаёт уязвимость XSS, который можно эксплуатировать для перенаправления клиента на фишинговый сайт.
Если сайт ещё и уязвим к CSRF (то самое форджери) и при этом для перенаправления используется параметры запроса, то эксплуатацию уязвимости можно провести немного легче.
Мораль: храните цель редиректа в сессии.
- NiGHt-LEshiY
- Полковник
- Сообщения: 10258
- Зарегистрирован: 13.06.2008
- Откуда: Россия
- Благодарил (а): 752 раза
- Поблагодарили: 2667 раз
- Контактная информация:
По-русски говори, бл.форджери
Это не мораль, а руководство к действию. Мораль была бы "нельзя полагаться на данные от пользователя".Мораль:
И ты совсем неправильно понял, что планируется делать с этими данными. Кто сказал, что будет редирект на тот адрес, что пришёл от юзера? Адрес из формы будет _использоваться_.
Кодекс поведения участников сообщества — обязательно к прочтению.
Просьба присылать сообщения об ошибках в ЛС.
Просьба присылать сообщения об ошибках в ЛС.
- Overseer618
- Overseer
- Сообщения: 272
- Зарегистрирован: 06.05.2010
- Откуда: Екатеринбург
- Контактная информация:
Мораль - используйте POST и ключи сессии.
- Pr0Ger
- Модератор
- Сообщения: 1829
- Зарегистрирован: 16.01.2009
- Благодарил (а): 17 раз
- Поблагодарили: 214 раз
- Контактная информация:
MOZGIII
как минимум, можно хранить не абсолютный url; а можно просто хранить идентификатор страницы, которое твоей логикой уже развернется в полный url, например t25425 -> /viewtopic.php?t=25425
а против CSRF надо проверять реферер или делать скрытые уникальные поля в форме
как минимум, можно хранить не абсолютный url; а можно просто хранить идентификатор страницы, которое твоей логикой уже развернется в полный url, например t25425 -> /viewtopic.php?t=25425
а против CSRF надо проверять реферер или делать скрытые уникальные поля в форме
-
- Разработчик
- Сообщения: 910
- Зарегистрирован: 09.01.2009
- Откуда: Переезжаю в /dev/null
- Благодарил (а): 7 раз
- Поблагодарили: 65 раз
- Контактная информация:
Pr0Ger
Я же говорил что первый способ из вики не надёжен - реферер сейчас спокойно подменяется средствами js.
Я же говорил что первый способ из вики не надёжен - реферер сейчас спокойно подменяется средствами js.
Вот этот способ с достаточной уверенностью спасает от CSRF. Но лучше, для полного счастья, добавлять ещё какую-нибудь авторскую магию.Overseer618 писал(а):Мораль - используйте POST и ключи сессии.
Это неплохо поможет защититься от XSS, но в рамках одного сайта редирект куда не надо всё равно возможен, эффективнее всего использовать именно сессию (т.к. пользователь или взломщик вообще не может её изменить, хотя есть атаки направленные на похищение сессии, но это из другой оперы).Pr0Ger писал(а):как минимум, можно хранить не абсолютный url; а можно просто хранить идентификатор страницы, которое твоей логикой уже развернется в полный url, например t25425 -> /viewtopic.php?t=25425
Не важно. Суть та-же.NiGHt-LEshiY писал(а):И ты совсем неправильно понял, что планируется делать с этими данными. Кто сказал, что будет редирект на тот адрес, что пришёл от юзера? Адрес из формы будет _использоваться_.
Я специально выдал мораль в такой форме. Думаю, причина, почему я так сделал, ясна.NiGHt-LEshiY писал(а):Это не мораль, а руководство к действию. Мораль была бы "нельзя полагаться на данные от пользователя".
- Pr0Ger
- Модератор
- Сообщения: 1829
- Зарегистрирован: 16.01.2009
- Благодарил (а): 17 раз
- Поблагодарили: 214 раз
- Контактная информация:
кажется я что-то проспал, хочу линкMOZGIII писал(а):реферер сейчас спокойно подменяется средствами js
по крайней мере не очень давно видел вот этот коммент говорящий об обратном
если что именно чистым JavaScript, без примесей флеша и тем более какой-нибудь жавы
да, я поискал, нашел какую-то штуку, которая пробивает древний файрфокс и только GET запросы
но данные, которые ты туда положишь все равно в какой-то момент получаются от пользователя, и могут быть подмененыMOZGIII писал(а):но в рамках одного сайта редирект куда не надо всё равно возможен, эффективнее всего использовать именно сессию
хотя такими размышлениями можно дойти как в той притче про хакера и солонку
- NiGHt-LEshiY
- Полковник
- Сообщения: 10258
- Зарегистрирован: 13.06.2008
- Откуда: Россия
- Благодарил (а): 752 раза
- Поблагодарили: 2667 раз
- Контактная информация:
Да нет, ещё как важно. Ты сам выдумал проблему и написал целый пост по поводу решения выдуманной проблемы. Этого бы не случилось, если б ты правильно понял пост Pr0Ger.MOZGIII писал(а):Не важно. Суть та-же.
Я не могу понять причину, правда. Какая может быть причина, чтобы выдать за мораль что-то, что моралью быть не может?Я специально выдал мораль в такой форме. Думаю, причина, почему я так сделал, ясна.
Кодекс поведения участников сообщества — обязательно к прочтению.
Просьба присылать сообщения об ошибках в ЛС.
Просьба присылать сообщения об ошибках в ЛС.
- Overseer618
- Overseer
- Сообщения: 272
- Зарегистрирован: 06.05.2010
- Откуда: Екатеринбург
- Контактная информация:
Вы уже обсудили данную тему, зачем устраивать холивары?
-
- Разработчик
- Сообщения: 910
- Зарегистрирован: 09.01.2009
- Откуда: Переезжаю в /dev/null
- Благодарил (а): 7 раз
- Поблагодарили: 65 раз
- Контактная информация:
Overseer618
Just for fun %) Разговор тут уже давно не конструктивен...
Добавлено спустя 3 минуты 17 секунд:
Добавлено спустя 1 минуту 5 секунд:
Добавлено спустя 8 минут 36 секунд:
Pr0Ger
По поводу js - я тоже поискал, действительно, ничего не находится... Я давно изучал этот вопрос, и, если честно, уже и не помню, почему я решил, что проверять реферрер - это плохо. Может быть дело было в моей конкретной задаче.
Вообще говоря, уязвимость при возможности CSRF порождается далеко не всегда. Это так, скорее варнинг, на который можно иногда обращать внимание.
Just for fun %) Разговор тут уже давно не конструктивен...
Добавлено спустя 3 минуты 17 секунд:
WTF?NiGHt-LEshiY писал(а):Да нет, ещё как важно. Ты сам выдумал проблему и написал целый пост по поводу решения выдуманной проблемы. Этого бы не случилось, если б ты правильно понял пост Pr0Ger.MOZGIII писал(а):Не важно. Суть та-же.
Добавлено спустя 1 минуту 5 секунд:
Думай xDNiGHt-LEshiY писал(а):Я не могу понять причину, правда. Какая может быть причина, чтобы выдать за мораль что-то, что моралью быть не может?
Добавлено спустя 8 минут 36 секунд:
Pr0Ger
По поводу js - я тоже поискал, действительно, ничего не находится... Я давно изучал этот вопрос, и, если честно, уже и не помню, почему я решил, что проверять реферрер - это плохо. Может быть дело было в моей конкретной задаче.
Вообще говоря, уязвимость при возможности CSRF порождается далеко не всегда. Это так, скорее варнинг, на который можно иногда обращать внимание.
- NiGHt-LEshiY
- Полковник
- Сообщения: 10258
- Зарегистрирован: 13.06.2008
- Откуда: Россия
- Благодарил (а): 752 раза
- Поблагодарили: 2667 раз
- Контактная информация:
MOZGIII
Отмазался.
Отмазался.
Кодекс поведения участников сообщества — обязательно к прочтению.
Просьба присылать сообщения об ошибках в ЛС.
Просьба присылать сообщения об ошибках в ЛС.
- GanGSISoft
- Полковник
- Сообщения: 1430
- Зарегистрирован: 27.03.2008
- Откуда: Бацькаўшчына
- Благодарил (а): 2 раза
- Поблагодарили: 3 раза
- Контактная информация:
1)У меня в файле _smarty.php объявлена переменная $srv_path, если я подключаю куда-то этот файл, и использую эту переменную, то netbeans выдаёт предупреждения, мол нету такой переменной, я правильно делаю(оно то всё работает)? и как избавится от предупреждения?
2)А вот ещё, если сделать так
то опять netbeans ругается, требует так
Это нормально?
3)И ещё, почему оно ругается на второе и третье упоминани $msg в этом коде
Я не пойму, или я не правильно делаю, или это NetBeans не прав.
2)А вот ещё, если сделать так
Код: Выделить всё
$var="ssadsad";
$var = strip_tags($var);
$var= htmlentities($var);
echo $var;
Код: Выделить всё
$var="ssadsad";
$var1 = strip_tags($var);
$var2= htmlentities($var1);
echo $var2;
3)И ещё, почему оно ругается на второе и третье упоминани $msg в этом коде
Код: Выделить всё
$msg = "сбой";
if(условие1){
if (улсовие2)
$msg = "Активация прошла успешно";
else
$msg = "Активировать профиль не удалось";
}
echo $msg;
Последний раз редактировалось GanGSISoft 10.07.2012, 20:52, всего редактировалось 1 раз.