Ведение журнала сервером — HTTP-сервер Apache

#logging

#ведение журнала

Вопрос:

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

http://httpd.apache.org/docs/1.3/logs.html

Что это значит, когда говорится «без экранирования»?

Ответ №1:

Экранирование — это когда вы берете, например, CRLF (перевод строки в стиле Windows) и превращаете его в r n, которые представляют собой 2 «экранированных» символа, которые вам понадобятся для этого, t — это tab и т.д. Это приводит их к форме, в которой они не «готовы», но вы знаете, что они там были, и их можно вернуть в исходную форму

Ответ №2:

Прочитайте: http://en.wikipedia.org/wiki/Code_injection#Shell_injection

Если бы я должен был экранировать html, <a> был бы экранирован в amp;<aamp;>

Таким образом, код не будет отображаться и не будет выполняться (и, следовательно, считается безопасным).

Если бы я принимал вводимые пользователем данные и передавал их напрямую другим пользователям, кто-то мог бы поместить туда вредоносный код. Например: http://myunsafesite.com?comment=<script>alert('i steal cookies')</script>

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