подлинность POST и GET

mark.moskalenko

Новичок
Добрый день или вечер. Направьте на правильное решение! Как проверить подлинность post and get запросов..
 

mark.moskalenko

Новичок
PHP:
<?php

$ch = curl_init();
$url = "http://galler.net/AjaxEditImg.php";

curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

$postVar = "id=50&description=%3Cscript%3Ealert('Simple+HACK+and+redirect!')%3B+window.location+%3D+'http%3A%2F%2Fwww.itr.com'%3B%3C%2Fscript%3E";

curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 0);

curl_setopt ($ch, CURLOPT_POST, 1);
curl_setopt ($ch, CURLOPT_POSTFIELDS, $postVar);

$str = curl_exec ($ch);

?>
Защита от подобных атак
 

Beavis

Banned
Определи сначала что ты подразумеваешь под "подлинностью"
 

С.

Продвинутый новичок
Под "подлинностью" человек подразумевает XSS
 

Redjik

Джедай-мастер
можно насувать проверок на заголовки, но это мертвому припарка, не хочешь, чтобы долбились парсером, настраивай сервер
 

WMix

герр M:)ller
Партнер клуба
вот и я не понимаю что значит подлинность, но могу рассказать как сделать пост или гет в только течении определенного промежутка времени действительным
 

Redjik

Джедай-мастер
вот и я не понимаю что значит подлинность, но могу рассказать как сделать пост или гет в только течении определенного промежутка времени действительным
O_O
скрипт отрабатывает за доли секунды...
 

Beavis

Banned
запоминаешь в сессии время когда выдаешь форму, и сравниваешь со временем когда она отправлена клиентом
только я не понимаю, зачем это нужно :)
 

WMix

герр M:)ller
Партнер клуба
пожалуйста подтвердите то что вы это хотите нажатием на этот линк (линк действителен в течении 2х дней)
.....
спасибо за оплату в течении 10 секунд начнется загрузка оплаченного вами файла

этого достаточно?

сессия это неправильно,... линк передается каким угодно способом, почта чат и все остальное
 

Beavis

Banned
пожалуйста подтвердите то что вы это хотите нажатием на этот линк (линк действителен в течении 2х дней)
А, ты про это.. Я подумал ты имеешь ввиду ограничение по времени на отправку открытой у пользователя формы
 

WMix

герр M:)ller
Партнер клуба
трудно по вопросу понять что хотят... предположил...
хотя понял ) htmlspecialchars
 

Absinthe

жожо
Человек скорее всего про XSRF спрашивает. С помощью токена, скрытое поле POST-формы.
Для GET-запросов это не нужно, т.к. GET-запросы не должны менять состояние моделей.
 

KOLANICH

Новичок
от csrf защититься невозможно, если только не привязать этот токен к вводу пароля по принципу
ввел пароль - получил токен
нет токена - вводи пароль,получай токен, не смотря на то, что залогинен
то есть привязка идёт не к сессии и не к куке, а к цепочке переходов по страницам данного сайта, начинающейся с ввода пароля

можно, конечно, и капчу, но капчу может распознать и не владелец, а вот пароль введёт только тот, кто его знает (если есть защита от брутфорса)

защита, основанная на просто токене, обходится элементарно (если мы располагаем чем-нибудь, что обходит same-origin в обе стороны - на отправку и на получение) - достаточно подгрузить страницу и вынуть из неё токен, после чего все последующие запросы пройдут как по маслу

от "same site request forgery" метод с паролем тоже отлично защитит
 

Redjik

Джедай-мастер
Сейчас вызову батхерт у некоторых индивидов своей зацикленностью, но в yii очень хорошо CSRF защиту сделали, если у ТС хватит знаний, можно посмотреть там.
 
Сверху