et sinon par le biais de méthode privées ce n'est pas possible ? ça permettrai de garantir que les méthodes ne sont effectuées que par le "logiciel" et pas par l'utilisateur.
gUI Le 7 juillet 2009 17:16, Julien Reitzel <[email protected]> a écrit : > > jd a écrit : > > Merci. J'avais dans l'idée d'utiliser un before_filter mais je ne > > connaissais pas (!) l'existence du HTTP_REFERER. La base… > > > > Quelques détails, ça pourra peut-être servir à quelqu'un : je me suis > > créé un before_filter :access_control dans l'ApplicationControler > > (dont dérivent tous les autres contrôleurs). Exécuté avant toute > > action, il vérifie entre autre chose qu'un referer = request.referer > > existe. Si oui, c'est que l'action courante a été déclenchée « en > > interne » et on ne bloque rien. Si non, c'est qu'on a affaire à une > > tentative d'accès direct par l'url. À noter qu'ajouter un ? > > referer=quelquechose dans l'url ne trompe pas Rails. > > > > Dans un contrôleur en particulier, > > skip_before_filter :access_control, :only => :index permet par exemple > > de ne pas appliquer ce filtre pour l'action index. Ainsi, un > > utilisateur pourra accéder à l'index en tapant l'url directe, mais ne > > pourra pas déclencher directement une action comme add ou remove, par > > exemple. Au programme de donner ou refuser l'accès interne vers tel ou > > tel action. > > > > L'ennui, c'est qu'on ne peut que très peu se fier au http_referer > > Quand tu testes si un referer existe, il me suffit de créer une page > avec le lien vers ton site inventory/add/123, tu auras une valeur dans > ta variable referer, et ça passera. > > Même si tu testes le contenu de ce referer, vu que l'information est > envoyée par le navigateur, l'utilisateur peut te faire croire que > l'action vient bien de ton site en manipulant son navigateur. > > > > -- > Julien. > > > > > -- Pour la santé de votre ordinateur, préférez les logiciels libres. Lire son mail : http://www.mozilla-europe.org/fr/products/thunderbird/ Browser le web : http://www.mozilla-europe.org/fr/products/firefox/ Suite bureautique : http://fr.openoffice.org/ --~--~---------~--~----~------------~-------~--~----~ Vous avez reçu ce message, car vous êtes abonné au groupe "Railsfrance" de Google Groups. Pour transmettre des messages à ce groupe, envoyez un e-mail à l'adresse [email protected] Pour résilier votre abonnement envoyez un e-mail à l'adresse [email protected] -~----------~----~----~----~------~----~------~--~---
