2009-05-06 6 views
0

사람들이 웹 사이트에 통합 할 수 있도록 iFrame 구성 요소를 만들었습니다. iFrame은 페이지가 원격 사이트에로드 될 때 URL 문자열에서 GET 변수를 전달해야합니다. 이 경우 상위 페이지는 http://www.theirsite.com/tracking=12345으로 호출되며 추적 변수는 페이지가 렌더링 될 때 iframe에 대한 원격 페이지의 html 코드에 작성되어야합니다.GET 변수를 레일스에 에코하려면 어떻게해야합니까?

레일을 제외한 각 주요 언어의 코드 버전을 만들었습니다. 코드의 PHP 버전은 아래와 같습니다.

완전한 Rails 초보자로서 htmlentities()와 비슷한 XSS 보호 기능을 가진 레일즈 용 비슷한 코드 스 니펫을 생성 할 수 있기를 희망합니다.

사람들이 사이트에 접속하여 복사 할 수 있도록 코드를 게시합니다.

... src="mysite.com?tracking=<%= CGI::escape(params[:tracking]) %>" ... 

CGI:escape() 함수는 URL의 매개 변수를 인코딩 및 XSS 공격을 방지하는 데 도움이 될 수 있습니다 :

... src="mysite.com?tracking=<?php echo htmlentities($_GET['tracking']); ?>" ... 

답변

1

params 해시 모든 GET과 POST 변수의 컬렉션을 포함합니다.

+0

을 , html_escape/h는 여기서 사용하는 것은 잘못되었습니다. URL 인코딩이 필요합니다. 가장 좋은 해결책은 Addressable :: URI.encode_component (value, Addressable :: URI :: CharacterClasses :: QUERY)에 대한 도우미를 만든다. 진부한 해결책 : URI.escape (value) –

+0

CGI :: escape (값)은 적절한 선택입니다. 이를 반영하기 위해 답을 편집했습니다. – Schrockwell

+0

완벽! 고마워, 얘들 아! – user77413

1

이 필요 특히이 같이 할 수있는 변수를 얻을 경우

... SRC = "mysite.com?tracking= <퍼센트 = request.GET ["추적 "] %>"사실

관련 문제