PHP и AJAX безопасность

Stragler

Новичок
PHP и AJAX безопасность

Добрый день, перерыл кучу информации, но так и не нашел ничего дельного. Интересует вот такой вопрос:

как обезопасить php файл, который обрабатывает ajax ( например post ) запрос.

Для обычных запросов через форму, все немного понятнее: для защиты от внешнего доступа прописываем defined, для проверки формы и уникальности прописываем токены в $_SESSION. Но если делать запрос через ajax, то php файл не видет $_SESSION, имеет другой session_id() и соотвественно не видет констант, объявленных через define. Так же в интернете много статей про безопасность php в общем, но не нашел ничего интересного опять же про ajax, ajax + jquery, вообще про всю динамаки. А ведь мне кажется скоро не будет сайтов, не использующих такие запросы.

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

Спасибо
 

Фанат

oncle terrible
Команда форума
Неудивительно, что ничего не нашел.
Запросы через AJAX ничем не отличаются от "обычных запросов через форму".
А если РНР не видИт сессию, то надо исправлять кривые руки программиста, который эту сессию программировал, а безопасность здесь не при чем.
 

Stragler

Новичок
Например, как защитить php файл от внешнего воздействия ( открытие через адресную строку), как узнать от кого пришол запрос ( сессии )
 

Фанат

oncle terrible
Команда форума
как защитить php файл от внешнего воздействия ( открытие через адресную строку)
тебе самому не смешно?
ты еще спроси, как защитить машину от езды по дорогам, а вилку от макарон.
как узнать от кого пришёл запрос ( сессии )
стратовать сессию.
 

Stragler

Новичок
Давай не будем умничать здесь, м? Как организовать чтонибудь наподобие defined как при обычных запросах?
 

Фанат

oncle terrible
Команда форума
Нет, будем.
Как раз умничать-то здесь и нужно. Т.е. прилагать умственные усилия, чтобы понять бессмысленность своих вопросов, особенно последнего.
Начать можно отсюда: http://phpfaq.ru/na_tanke
после прочтения ответь себе на вопрос про defined.
 

Stragler

Новичок
Я надеюсь что ты просто не понял вопроса, а не... Видел когда-нибудь такую конструкцию?:

defined('_JEXEC') or die('Restricted access');
 

Vin-Diesel

Новичок
Думаю стоит пойти и прочитать, статью, что дал Фа*ат)

-~{}~ 05.06.10 12:33:

P.S.
Исправьте ошибочку там...
"Как передать переменную из PHP в JavaScript и обратно?"
Третье предложение:
"И из одной в другую передать её нальзя"
 

Фанат

oncle terrible
Команда форума
Stragler
я прекрасно понял твой вопрос.
Теперь твоя очередь.
внимательно прочитай все мои ответы в этом топике и ссылку, которую я дал выше.
плюс еще придется немного подумать.

Если будут впросы по прочитанному - можешь задать.
 

Stragler

Новичок
Фа*ат

Кароче хватит спамить форум своими глупыми ответами, либо ты перестаешь корчить из себя умника и помогаешь конкретной строкой, либо плз не пиши здесь больше.

Vin-Diesel

Спасибо, прочитал, но ничего нового не нашел...
 

Фанат

oncle terrible
Команда форума
Скажи, у тебя появились какие-нибудь вопросы после прочтения?
С какими моими утверждениями ты не согласен, и почему?
 

fixxxer

К.О.
Партнер клуба
Stragler

Глупый здесь кто-то другой. Не буду показывать пальцем, но это ты.
 

Stragler

Новичок
fixxxer
Я кого-то назвал глупым, м? Прежде чем писать что-то, прочитай и подумай хоть немного
 

Фанат

oncle terrible
Команда форума
( поверь я 1 день в прогр.)
охотно верю, хе хе.
как организовать мою проблему
Я тебе уже все написал.
Аяксовый запрос НИЧЕМ не отличается от обычного.
То есть методы применяются РОВНО ТЕ ЖЕ САМЫЕ.

Что здесь здесь написано такого, что за целый день невозможно понять?

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

Для обычных запросов через форму, все немного понятнее: для защиты от внешнего доступа прописываем defined,
раскрой-ка эту мысль поподробнее.
Поясни пожалуйста, какое отношение "защита от внешнего доступа" имеет к обработке форм?
(отвечать следует только на этот вопрос, а не на все предыдущие замечания, от которых я не смог удержаться, но которые будут ясны позднее. самое главное сейчас - этот вопрос)
 

Stragler

Новичок
Может я неправильно выразился, как сделать так, чтобы если я вбил в адрес: http://mysite.ru/test.php - он мне написал, что доступ запрещен? ( ну любое сообщение, чтоб он die сделал)
 

Фанат

oncle terrible
Команда форума
ну можно написать
die();
вначале.
толко я не понимаю смысла этого действия.
 

fixxxer

К.О.
Партнер клуба
>>Для обычных запросов через форму, все немного понятнее: для защиты от внешнего доступа прописываем defined,


а можно поподробнее?
 

dimagolov

Новичок
Stragler, тебе нужно определить, что запрос некорректен. поэтому подумай, что для тебя означает корректный запрос. не в терминах "прислан моей формой или страницей", а в терминах тех данных, которые он содержит и какие данные могут сделать его некорректным.
 

Stragler

Новичок
Так ладно попробуем еще раз:
нужно сделать так чтобы, запрос через форму (form action="test.php" method="post") запрос нормально работал ( то есть он получал данные, обрабатывал их как то и отсылал обратно)
Но если просто вписать http://mysite.ru/test.php просто в адресную строку - то скрипт не выполнялся, а просто прекращался функцией die();

Слышал есть метод, при котором мы в файле откуда происходит запрос прописываем define('JEXEC', 'TEST');

А в файле который обрабатывает запрос ( в нашем случае test.php) - прописываем defined('_JEXEC') or die('Restricted access');

Но такой метод не работает почемуто при запросах через ajax.

Либо вопрос можно так поставить - как определить то, что запрос пришел именно с нашей формы, а не откуда то еще - в противном случае сделать die

-~{}~ 05.06.10 16:16:

dimagolov
Фильтрация данных мне кажется это совсем другой разговор, я просто фильтрую все данные с помощью регулярок
 
Сверху