2011-12-29 1 views
2

은 내가 어떻게 그런 짓을 할 수 알아 내기 위해 노력하고있어.

console.log('<?php echo serialize($_SESSION); ?>'); 

도 작동하지 않습니다. 나에게 방화범에 세션 정보를 표시하거나 테스트 목적으로 크롬의 요소를 검사 할 수있는 방법이 있습니까?

+2

스크립트 태그 사이에이 코드를 사용하고 있습니까? – ahmet2106

+1

작동하지 않는 경우 발생한 오류에 대한 올바른 설명이 아닙니다. 자바 스크립트 "문자열"로 무엇이든 버릴 수는 없습니다. 직렬화 된 스트링 안에'''이 있다고 가정하면, 단지 작동을 멈추게 할 것이다. – hakre

답변

7

이 작업을 시도 할 수 :

<script> 
    console.log(<?php echo json_encode($_SESSION, JSON_HEX_TAG); ?>); 
</script> 

없음 따옴표는 필요하지 않습니다. 또한 Firebug and Logging을 참조하십시오.


[편집, 2014 년 5 월] XSS 공격으로부터 안전하도록 코드를 업데이트했습니다. json_encode-항상 패스 JSON_HEX_TAG 당신은 HTML에 삽입하는 경우, 또는 공격자처럼 문자열을 인코딩하도록하여 DOM에 코드를 주입 ​​할 수 있습니다 : 불을 사용하여 세션 세부 정보를 볼 수 없습니다

</script><script>alert('Hello!'); 
2

곤충.

+1

실제로이 답변은 그 성격 상 매우 정확하며 downvoted 될 자격이 없습니다. 방화범을 사용하여 세션 데이터를 볼 수 없으므로 서버 측에서 데이터를 준비해야합니다. 이 경우 질문은 의미가 없습니다. 세션, DB, 타사 서비스 등의 데이터를 준비 할 수 있기 때문입니다. – zerkms

+0

Chrome에서는 애플리케이션 탭에서 쉽게 액세스 할 수 있습니다. 아직도 파이어 버그에서 빠져 있니? 서버 측에서 볼 수는 있지만 Chrome에서 보는 것이 더 쉬울 것입니다. –