не дают выполнить AJAX запрос!

gekakos

Новичок
не дают выполнить AJAX запрос!

общение с ТП провайдерера пока ни к чему не привело, решил запостить
обратился с сабжевой проблемой
backend в лице /ajax/admin/admin.php выдает

PHP:
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN"> 
<HTML><HEAD> 
<TITLE>403 Forbidden</TITLE> 
</HEAD><BODY> 
<H1>Forbidden</H1> 
You don't have permission to access /ajax/admin/admin.php 
on this server.<P> 
<HR> 
<ADDRESS>Apache/1.3.37 Server at ************.ru Port 80</ADDRESS> 
</BODY></HTML>
на сервер была хакерская атака и админы что-то поменяли, обновили модули
но самое обидное, что я не понимаю по каким причинам такое может произойти и провайдер,
(судя по его ответам, которые приходят мне на мыло через пару часов после задания вопроса)
тоже не очень въезжает
 

gekakos

Новичок
да... если обратиться к скрипту напрямую,
************.ru/ajax/admin/admin.php
он срабатывает в том плане, что он выполняется как php скрипт

-~{}~ 20.12.08 21:48:

какие должны быть права? я в этом неочень шарю, если честно

-~{}~ 20.12.08 21:52:

ну выставил вот "777" в атрибутах файла - нефига... та же ошибка
 

Farsh

~ on ~ high ~ wave ~
gekakos
Достаточно сравнить заголовки между обычным запросом и запросом через ajax, сделать вывод.
 

gekakos

Новичок
Автор оригинала: Farsh
gekakos
Достаточно сравнить заголовки между обычным запросом и запросом через ajax, сделать вывод.
аяксовый запрос
Код:
Date	Sun, 21 Dec 2008 17:15:15 GMT
Server	Apache/1.3.37 (Unix) PHP/4.4.4 mod_throttle/3.1.2 FrontPage/5.0.2.2635 mod_psoft_traffic/0.2 mod_ssl/2.8.28 OpenSSL/0.9.7e-p1
Connection	close
Transfer-Encoding	chunked
Content-Type	text/html; charset=iso-8859-1
Request Headers
Host	***********.ru
User-Agent	Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.0.5) Gecko/2008120122 Firefox/3.0.5
Accept	text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language	ru
Accept-Encoding	gzip,deflate
Accept-Charset	windows-1251,utf-8;q=0.7,*;q=0.7
Keep-Alive	300
Connection	keep-alive
Content-Type	application/octet-stream; charset=UTF-8
Referer	[url]http://*********.ru/admin.php?type=news&path=news[/url]
Content-Length	19
Cookie	PHPSESSID=364ba6348c8db762fca8d135d6ccd7b9; asecure_code=ed1053f6c5177cb3ef816e93b961e688
обычный
Код:
Date	Sun, 21 Dec 2008 17:17:13 GMT
Server	Apache/1.3.37 (Unix) PHP/4.4.4 mod_throttle/3.1.2 FrontPage/5.0.2.2635 mod_psoft_traffic/0.2 mod_ssl/2.8.28 OpenSSL/0.9.7e-p1
X-Powered-By	PHP/4.4.4
Expires	Mon, 26 Jul 1997 05:00:00 GMT
Cache-Control	no-cache, must-revalidate
Pragma	no-cache
Last-Modified	Sun, 21 Dec 2008 17:17:13GMT
Connection	close
Transfer-Encoding	chunked
Content-Type	text/html
Request Headers
Host	*********.ru
User-Agent	Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.0.5) Gecko/2008120122 Firefox/3.0.5
Accept	text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language	ru
Accept-Encoding	gzip,deflate
Accept-Charset	windows-1251,utf-8;q=0.7,*;q=0.7
Keep-Alive	300
Connection	keep-alive
Cookie	PHPSESSID=364ba6348c8db762fca8d135d6ccd7b9; asecure_code=ed1053f6c5177cb3ef816e93b961e688
осталось сделать правильные выводы...

-~{}~ 21.12.08 20:34:

чОрд! вот как сервер различает аяксовый и обычные запросы? как мне провайдеру объяснить, что у него так?... или что у меян не так... хотя это врядли.... до атаки все же работало :\
 

alekciy

Новичок
чОрд! вот как сервер различает аяксовый и обычные запросы? как мне провайдеру объяснить, что у него так?... или что у меян не так... хотя это врядли.... до атаки все же работало :\
Не провайдеру, а хостеру. Сервер ни как не отличает аяксовские и обычные запросы. Между ними разницы нет вообще ни какой, это просто HTTP данные.

С такими вопросами тебе лучше привлеч стороннего специалиста.
 

Farsh

~ on ~ high ~ wave ~
alekciy
При аяксе вешается дополнительный заголовок X-Requested-With XMLHttpRequest ( по крайне мере в файрфокс ).. А именно тут меня смушает воть это :
Content-Type application/octet-stream; charset=UTF-8
 

alekciy

Новичок
Farsh
И пусть вещает. WebDAV вон вообще много чего в заголоки добавляет... и все равно это банальный HTTP. Только немного "пошире".
 

gekakos

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

alekciy

Новичок
gekakos
Разницы нет.
Разбирайтесь в том, что у вас произошло в движке. Быть может вирус его "сломал".

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

Сам периодически сталкиваюсь с подобными ситуациями и могу заметить, зачастую заказчик не может с формулировать в чем проблема, а хостер не_может/не_хочеть разбираться в чужом коде и в принципе он прав. И если проблема возникла из-за именения в конфигурации сервера, то хостеру требуется нормальное техническое обоснование.
Уж не мастерхост ли это хостер? ;)
 

MiRacLe

просто Чудо
Тогда заказчику надо искать не другого хостера, а другого исполнителя...
 

gekakos

Новичок
MiRacLe, про лог я действительно забыл, спасибо, ну а вот предыдущие два поста я, если честно, не могу понять
вам что делать нечего, разводить флэйм?

проблема скорее всего решена
дело в том самом
Content-Type application/octet-stream
после установки фильтра
SecFilterSelective HTTP_Content-Type "!(^$|^application/x-www-form-urlencoded$|^multipart/form-data)"
с таким типом запрос не пройдет

а сам Content-Type application/octet-stream нужен для корректной работы аякса
(библиотека JsHttpRequest)
 

MiRacLe

просто Чудо
раз уж вы здесь, поделитесь, пожалуйста, своей альтернативной реальностью с нами: что там такого "корректного в работе аякса c application/octet-stream" ?
 

alekciy

Новичок
gekakos
>с таким типом запрос не пройдет
Мой склероз мне говорит, что с вырезкой этого через фильтр формы сабмититься не будут вовсе.

>а сам Content-Type application/octet-stream нужен для
>корректной работы аякса
http://www.ixbt.com/soft/ajax.shtml
 

gekakos

Новичок
>формы сабмититься не будут вовсе.
неверно. только обычне формы и отправка файлов будет работать
http://phpclub.ru/detail/article/regexp_1

>>а сам Content-Type application/octet-stream нужен для
>>корректной работы аякса
>http://www.ixbt.com/soft/ajax.shtml

>что там такого "корректного в работе аякса c application/octet-stream" ?

HTTP_RAW_POST_DATA is only accessible when Content-Type of POST request is NOT default "application/x-www-form-urlencoded"!!!
Library frontend sets "application/octet-stream" for that purpose
(коменты к коду библиотеки)
alekciy, за ссылку все равно спасибо
 

alekciy

Новичок
gekakos
Зачем использовать какие-то либы когда этот объект можно использовать в нативном виде...
 

MiRacLe

просто Чудо
Котерову конечно виднее, но ведь есть always_populate_raw_post_data, если уж на то пошло...
 
Сверху