Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Apace2 и кодировка

1.8K
29 февраля 2008 года
Валериус
190 / / 14.07.2006
Недавно Ubuntu предложил мне обновить Apache и теперь у меня возникла проблема с кодировками.
Вот кусок apache2.conf, отвечающий за виртуальный хост:
 
Код:
<VirtualHost 10.10.47.164:80>
        ServerAdmin creator@creator.su
        DocumentRoot "/home/creator/Не разобранное"
        ServerName creator.vernet.eu.org
        ErrorLog "/home/creator/Не разобранное/.errorslog"
        CustomLog "/home/creator/Не разобранное/.customlog" common
        AddDefaultCharset utf-8
</VirtualHost>

index-файла в корне нет, .htaccess тоже. Отражается просто список файлов. Проблема в том, что в заголовках приходит кодировка ISO-8859-1, а имена файлов у меня в UTF.
Единственное, что смог придумать - написать php-скрипт, который будет считывать имена файлов и выдавать правильную кодировку, но это займёт много времени. Можно как-нибудь быстрее с этим разобраться?
1.8K
01 марта 2008 года
Валериус
190 / / 14.07.2006
Ну ладно, пойду писать скрипт... :(
12
01 марта 2008 года
alekciy
3.0K / / 13.12.2005
Цитата: Валериус
Проблема в том, что в заголовках приходит кодировка ISO-8859-1, а имена файлов у меня в UTF.


Разбирайтся почему. По дефолту Апач сам кодировку не приписывает. Смотри какие заголовки посылает твой сервер.

1.8K
05 марта 2008 года
Валериус
190 / / 14.07.2006
А есть ли средства (кроме telnet), позволяющие увидеть весь ответ сервера, включая заголовки?

Про заголовки я написал, так как 4 разных браузера (Opera, FF, IE, Epiphany) показали одну и ту же неверную кодировку. Или это как-то связано со спецификациями?
244
05 марта 2008 года
UAS
2.0K / / 19.07.2006
Live HTTP Headers плагин к мозилле
12
05 марта 2008 года
alekciy
3.0K / / 13.12.2005
Цитата: Валериус
А есть ли средства (кроме telnet), позволяющие увидеть весь ответ сервера, включая заголовки?

Про заголовки я написал, так как 4 разных браузера (Opera, FF, IE, Epiphany) показали одну и ту же неверную кодировку. Или это как-то связано со спецификациями?


Более подробной информации чем снифер дать ни кто не может. Можно весь пакет рассмотреть вплоть до канального уровня.

Но тебе больше подойдет FireBug плагин для FF. Имхо, лучшая штука в своем классе (но и под другие браузеры аналоги есть).

Касательно кодировки, подозреваю, что в META страницы у тебя написано одно, а в HTTP заголовках другое.


Не очевидные истины. Meta тег против HTTP header. Кто кого?

1.8K
05 марта 2008 года
Валериус
190 / / 14.07.2006
Я же писал, что index-файла нет, апач сам генерирует простенькую html-ку со списком файлов. Вот скрин FireBug'а, апач таки посылает кодировку ISO.
353
05 марта 2008 года
Nixus
840 / / 04.01.2007
По-моему Content-Type, который выдает mod_autoindex, жестко прописан в самом модуле вместе с charset (можешь посмотреть содержимое бинарника и поискать строчку text/html;charset=ISO-...) и не поддается настройке.

Ищи другой mod_autoindex.so или правть этот.
12
05 марта 2008 года
alekciy
3.0K / / 13.12.2005
Цитата: Валериус
Я же писал, что index-файла нет, апач сам генерирует простенькую html-ку со списком файлов. Вот скрин FireBug'а, апач таки посылает кодировку ISO.


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

По идее autoindex автоматом распознает такие вещи. У меня ни на виндах, ни на никсах такой проблемы ни когда не возникало.

12
05 марта 2008 года
alekciy
3.0K / / 13.12.2005
Цитата: Nixus
По-моему Content-Type, который выдает mod_autoindex, жестко прописан в самом модуле вместе с charset (можешь посмотреть содержимое бинарника и поискать строчку text/html;charset=ISO-...) и не поддается настройке.


А там просто нечего настраивать, т.к. модуль использует результат вывода ls (никсы) или dir (винда) команд.

353
05 марта 2008 года
Nixus
840 / / 04.01.2007
Цитата: alekciy
А там просто нечего настраивать, т.к. модуль использует результат вывода ls (никсы) или dir (винда) команд.


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

12
06 марта 2008 года
alekciy
3.0K / / 13.12.2005
Цитата: Nixus
Ну вообще-то не так, там используются системные вызовы для перечисления фалов в каталоге, но мысль передана правильно.


Пусть системные, принцип тот же, что и для данных команд. Главное, что модуль работает напрямую с фс.

1.8K
06 марта 2008 года
Валериус
190 / / 14.07.2006
Цитата: alekciy
С чего ты решил, что имена файлов у тебя в UTF кодировке? Кодировка в которой записан сам файл, и кодировка в которой храниться имя этого файла в фс это разные вещи.



Во-первых, локаль системы ru-ru.utf-8, во-вторых, если ручками указать кодировку utf-8 в браузере, всё станет видно, в-третьих, скрипт написан и работает как надо. А как и на что это в моём случае может повлиять?

353
07 марта 2008 года
Nixus
840 / / 04.01.2007
Цитата: alekciy
Пусть системные, принцип тот же, что и для данных команд. Главное, что модуль работает напрямую с фс.


А не напрямую это как? :)

12
07 марта 2008 года
alekciy
3.0K / / 13.12.2005
Цитата: Nixus
А не напрямую это как? :)


А не напрямую можно было бы парсить ответ ls или dir-а. IPC типа :D

353
07 марта 2008 года
Nixus
840 / / 04.01.2007
Цитата: alekciy
А не напрямую можно было бы парсить ответ ls или dir-а. IPC типа :D


Ну тогда я не понимаю.

Цитата: alekciy
А там просто нечего настраивать, т.к. модуль использует результат вывода ls (никсы) или dir (винда) команд.



Цитата: alekciy
Пусть системные, принцип тот же, что и для данных команд. Главное, что модуль работает напрямую с фс.

12
07 марта 2008 года
alekciy
3.0K / / 13.12.2005
Цитата: Nixus
Ну тогда я не понимаю.


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

Но в принципе тоже самое можно было организовать через парсинг ответа ls или dir-а.

В общем по ходу действительно вечерком нужно исходники порыть....

1.8K
07 марта 2008 года
Валериус
190 / / 14.07.2006
Товарищи, а по теме кто-то может сказать? Что мне делать? Кроме правки исходников апача и его модулей.
92
07 марта 2008 года
Тень Пса
2.2K / / 19.10.2006
найди вот этот файл и посмотри в нём - mod_autoindex-defaults.conf

ну или как-то так называется.
12
08 марта 2008 года
alekciy
3.0K / / 13.12.2005
Валериус
Посмотрел я и сходник (версии 2.2.3). Как я понимаю апач работает с фс напрямую получая данные в utf-8 формате.
Цитата:

#if APR_HAS_UNICODE_FS
ap_set_content_type(r, "text/html;charset=utf-8");
#else
ap_set_content_type(r, "text/html");


Но так получается на виндошной системе. На линях и юнихе кодировка не указывается.
Это даже приводит к XSS уязвимости: http://securityvulns.ru/Rdocument995.html .
Решение: обновиться до 2.2.6 версии: http://www.apache.org/dist/httpd/CHANGES_2.2.6

Цитата:

mod_autoindex: Add in Type and Charset options to IndexOptions
directive. This allows the admin to explicitly set the
content-type and charset of the generated page and is therefore
a viable workaround for buggy browsers affected by CVE-2007-4465
(cve.mitre.org).


Т.е. прописывание в .htaccess в данной директории опции:
IndexOptions Charset=UTF-8
должно изменить ситуацию (хотя бы в плане отдаваемого HTTP заголовка).

1.8K
08 марта 2008 года
Валериус
190 / / 14.07.2006
2.2.6 пока нет ни в убунтовских, ни в дебиановских репозитариях, а самому собирать не охота.

Опция помогла, спасибо большое! :)
12
08 марта 2008 года
alekciy
3.0K / / 13.12.2005
Цитата: Валериус
2.2.6 пока нет ни в убунтовских, ни в дебиановских репозитариях, а самому собирать не охота.

Опция помогла, спасибо большое! :)


Так опцию добавили еще чуть ли не с 2.0 версии, поэтому резона ставить 2.2.6 просто нет. Просто XSS уязвимость пофиксена именно с этой версии.

13
08 марта 2008 года
RussianSpy
3.0K / / 04.07.2006
Цитата: Валериус
2.2.6 пока нет ни в убунтовских, ни в дебиановских репозитариях, а самому собирать не охота.



Все там есть. Просто зависит от того какую ветку используете. В Etch скорее всего действительно нет, а в testing уже 2.2.8 есть. Вот например как оно стоит у меня

 
Код:
Apache Version  Apache/2.2.8 (Debian) PHP/5.2.5-3 with Suhosin-Patch mod_perl/2.0.3 Perl/v5.8.8
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог