Защита PHP скриптов, вызываемых при помощи AJAX

skynet80

rundesigner.com
Защита PHP скриптов, вызываемых при помощи AJAX

Как защитить пхп скрипт от прямого доступа когда он вызывается из другого скрипта известно, например

defined('_VALID_MOS') or die('Direct Access to this location is not allowed.');

А как сделать так чтобы этот скрипт был еще доступен для объекта XMLHttpRequest, но в тоже время был защищен от прямого доступа.
 

neko

tеam neko
во-первых этого сделать нельзя
во-вторых этого делать не нужно

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

skynet80

rundesigner.com
Во первых я знаю что можно :).
Во вторых нужно.

А насчет мотивов для чего люди прибегают к Аякс.
То тут технический форум и задаются технические вопросы.
Если же тебе непонятно это не значит что это не нужно применять :).
 

skynet80

rundesigner.com
Так можно просто больше данных скрипту передавать постом чтобы он отличал откуда он вызывается.

Ща думаю над более элегантным способом. Все не хватает времени проверить что в серверных переменных отображается если вызывается скрипт при помощи аякса. Может тут что есть.
 

bkonst

.. хочется странного?...
Это не защита. А если злобный хакер передаст те же данные тем же постом? Используя HTTP, отличить одно от другого нельзя.

Чувствую, сейчас придет раздраженный Фанат и раздаст плюшки.
 

Solid

Drosera anglica
Фанат: брось из себя строить самого умного. Даже не читая "танка" я заранее знаю, что там написанно.

Естественно 100% защитить ajax невозможно, так же как и программу от взлома.
В общем есть мысль по поподу защиты, помоему единственное возможное решение: шифровать xml код, затем декодировать его обратно через javascript. Сам JS-код переводить в человеко-непонятную форму. Конечно, защита будет действовать не долго, но таким образом можно оттянуть время.
 

neko

tеam neko
это не защита.
это называется обфускация причем довольно слабенькая, где-то на 3 с плюсом.
 

neko

tеam neko
да, есть
не делать этого вообще.

вам, приматам, я вижу нужно, повторять все по нескольку раз.
повторяю:
это невозможно в принципе, поэтому все что ни придет в ваши дурные головы -- ни от чего не защитит.
это не нужно, потому что ничего абсолютно не дает.
 

Solid

Drosera anglica
Автор оригинала: neko
да, есть
не делать этого вообще.

вам, приматам, я вижу нужно, повторять все по нескольку раз.
повторяю:
это невозможно, потому что ни от чего не защитит.
это не нужно, потому что ничего абсолютно не дает.
Ну Вы и свинья.
 

Фанат

oncle terrible
Команда форума
теме-то давно место на помойке

разговаривать тут не с кем и не о чем.
 

T. Anre

Новичок
Re: Защита PHP скриптов, вызываемых при помощи AJAX

Автор оригинала: skynet80
Как защитить пхп скрипт от прямого доступа когда он вызывается из другого скрипта известно, например

defined('_VALID_MOS') or die('Direct Access to this location is not allowed.');

А как сделать так чтобы этот скрипт был еще доступен для объекта XMLHttpRequest, но в тоже время был защищен от прямого доступа.
В чем проблема, вместо "defined('_VALID_MOS') ", надо просто проверить какой-нибудь GET или POST идентификатор.
 

Фанат

oncle terrible
Команда форума
не.
этот топик не надо убирать.
а наоборот - оставить. как заповедник идиотов.
 

дымчик

Новичок
А почему не организовать AJAX-овский back-end в виде одного файла ajaxbackend.php содержащего, что-то типа:
Код:
define('AJAX','AJAX');
и принимающий в качестве входного параметра, допустим $_POST["fName"], таким образом будет конструкция вида:

Код:
define('AJAX','AJAX');

if ($_SESSION['enoughGrants']) {

    if (isset($_POST['fName'])) {

        include_once('абсолютный-путь'.HTMLSpecialChars($_POST['fName']).'.php');

    }

}
соответственно, любой AJAX-овский back-end'ный файл будет иметь вид:

Код:
if (defined(...))
...
А все запросы XMLHTTPRequest'а осуществлять через
Код:
POST-запрос:
ajaxbackend.php?fName=getTitle&param1=value1&param2=value2
 
Сверху