2012-09-27 4 views
3

작은 테스트 페이지를 작성하여 document.referrer 명의 사용자를 자바 스크립트로 캡쳐 한 다음 간단한 로그 서버 (예 : sendReferrer(document.referrer))로 보냅니다.`document.referrer`는 url-encoded인가요?

Firefox 보내기는 항상 URL 인코딩됩니다 (예 : referrer url이 www.google.com/search?q 인 경우 'http://www.google.com/search?q=%C3%9C'). = U)

그러나 Win7에에 IE9와 같은 일부 클라이언트() URL 인코딩 (www.google.com/search?q=Ü)

document.referrer가 모든 브라우저에서 URL이 인코딩입니다없이 URL을 전송? 이것은 신뢰할 수 있습니까 (표준의 일부)?

UPDATE : (우분투) Firefox15/Chrome21에서 document.referrer는 URL 인코딩 나는 최근 모든 주요 브라우저에서 테스트하고이 아닌 것으로 나타났다 document.referrer 인코딩 된 URL이 아닙니다

+0

신뢰할 수 없습니다. 스푸핑되거나 비활성화 될 수 있습니다. – Pointy

+2

@Pointy 질문은 인코딩의 신뢰성 여부와 관련이 있다고 생각합니다. – Yoshi

+0

@Yoshi 어쨌든 어떤 이유로 든 그것에 의존하는 것은 바람직하지 않습니다. 처음에는 나쁜 생각이었습니다. – Pointy

답변

1

이 질문에 대한 최종 답변 : Referer 인코딩 할 수도 있고 인코딩하지 않을 수도 있습니다! 내 테스트에서 일부 (일부만!) IE는 인코딩되지 않은 참조자를 보냅니다 (클라이언트 시스템의 로캘에 따라 다름).

5

그것들 모두에 인코딩되어있다.

+0

Firefox15/Chrome21에서 테스트되었고 URL 인코딩 됨 –

+0

쿠키 또는 무언가에 넣으면 인코딩 된 결과가 document.referrer에서 오는 문자열 인 경우가 있습니다. 그러나 document.referrer 자체는 인코딩 된 URL이 아닙니다. – Develoger

+0

'console.log'로 확인해 봅니다. 실제로 url로 인코딩되었습니다. –