2013-07-08 14 views
0

도트가 이중으로 인코딩되었지만 작동하지 않으면 document.cookie에 경고하려고합니다.이중 인코딩 문자를 경고합니다.

<script>alert(unescape(document%252Ecookie))</script> 

어떻게 내가이 점을 두 번 인코딩을 사용하여 작업 할 수 있습니다 : 여기 내 코드입니까? 감사합니다. . 문자열에

unescape() 작품 :

+0

이중 디코딩 방법은 무엇입니까 – Musa

+0

정확히 무엇을하려고합니까? 이스케이프 해제는 문자열에서 작동합니다. 문서 % 252Ecookie는 문자열이 아닙니다. 문제를 정교하게 부탁합니다 – Reason

+0

@Musa 피곤한 유령을 끊지 마십시오 (유엔 수문을 풀지 마십시오.) 도트는 이중으로 인코딩됩니다. – user2536979

답변

0

당신이 여기 정말 일을하려고하지만, 무엇 없음 아이디어는 몇 가지 해명이다. 문자열을 취하여 다른 문자열을 반환합니다. document%252Ecookie은 문자열이 아니므로 unescape()을 사용할 수 없습니다. 언 이스케이프를 사용하려면

는 (기억, 언 이스케이프 문자열에 문자열로 나가는) 당신에게 문자열 "document.cookie"을 줄 것이다 "document%252Ecookie"

unescape(unescape("document%252Ecookie")) 주위에 따옴표를 넣어. 이 사실을 알리면 "document.cookie"이라는 경고 상자가 표시됩니다. 이는 아마도 당신이 찾고있는 것이 아닙니다. document.cookie의 내용을 얻으려면 eval()을 사용할 수 있습니다. 문자열을 취하여 문자열을 평가합니다.

그래서 당신은 당신이 입력합니다 수행 할 작업을 수행하는 :

alert(eval(unescape(unescape("document%252Ecookie")))) 

이 작업을 수행 할 이유 없음 생각하지만,이 그것을 할 수있는 방법입니다. 나는이 코드가 매우 어리 석다는 것을 지적하고 싶다. 그러나 잘하면 나는 당신에게 더 명확한 것을 만들었다.

+0

처럼 바보가 아닙니다. 나는 특별한 목적을 가지고 있습니다 . – user2536979

+0

하하, ok :). 그래서 그것은 당신의 문제를 해결 했습니까? – Reason

관련 문제