2009-05-06 8 views
0

J'ai créé un composant iFrame que les personnes peuvent intégrer dans leurs sites Web. Le iFrame doit être passé une variable GET de la chaîne URL lorsque la page est chargée sur le site distant. Dans ce cas, la page parente serait appelée http://www.theirsite.com/tracking=12345 et la variable de suivi devrait être écrite dans le code html de la page distante pour l'iframe lors du rendu de la page.Comment renvoyer une variable GET dans Rails?

J'ai créé des versions du code pour chaque langue principale sauf les rails. La version PHP du code est montrée ci-dessous.

En tant que néophyte Rails complet, j'espère que quelqu'un peut générer un extrait de code similaire pour Rails avec une protection XSS similaire à htmlentities().

Je publie le code pour les personnes à saisir et à copier dans leurs sites.

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

Répondre

1

Le hachage params contient une collection de toutes les variables GET et POST:

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

La fonction CGI:escape() code le paramètre pour une URL et peut aider à prévenir les attaques XSS.

+0

En fait , html_escape/h est la mauvaise chose à utiliser ici. Vous devez encoder l'URL. Meilleure solution: Créer une aide pour: Addressable :: URI.encode_component (valeur, Addressable :: URI :: CharacterClasses :: QUERY) Solution Crappy: URI.escape (valeur) –

+0

Vous avez raison, bien que cela ressemble à CGI :: escape (valeur) est un choix approprié. J'ai édité la réponse pour refléter cela. – Schrockwell

+0

Parfait! Merci les gars! – user77413

1

Si vous avez besoin d'obtenir plus précisément variable que vous pouvez faire comme ceci:

... src = "mysite.com?tracking= <% = request.GET [" suivi "]%>"

Questions connexes