Et en testant request.host_with_port ?

Le 7 juillet 2009 23:37, Meshak <[email protected]> a écrit :

>
> Si une action est déclenchée via le navigateur de l'internaute, celui-
> ci pourra toujours "tricher" sur les requêtes. Avec les bons plugins
> dans Firefox, on peut facilement simuler n'importe quelle requête GET/
> POST avec les referer/locale/user-agent... que l'on souhaite.
>
> Même :protect_from_forgery est contournable : j'ai déjà eu affaire à
> un bot qui validait mes formulaires.
>
> Donc les seules solutions fiables (comme dit plus haut) :
>
> 1. Limiter les actions des routes, exemple :
> # Ni création, ni suppression d'objets "Configuration"
> map.resources :configurations, :except => [:new, :create, :destroy]
>
> 2. Mettre un système d'authentification : plusieurs gems/plugins sont
> disponibles, autrement ça peut être du fait-maison.
>
> 3. Mettre un système de droits, et resteindre les actions autorisées
> dans les contrôleurs, exemple :
> # Seul un admin pourra utiliser l'action destroy
> before_filter :check_user_is_admin, :only => [:destroy]
>
> 4. Coder RESTful ses actions custom, cela évite beaucoup de fausses
> manipulations. Exemple :
> # Mon action supprime des choses, donc j'évite à tout prix le :get, je
> préfère du :delete
> map.remove_item_associations '/items/:id/
> remove_assocations', :conditions => { :method => :delete }
>
> Julien
>
> On 7 juil, 19:26, jd <[email protected]> wrote:
> > Une note : j'ai testé l'affaire en suivant les indications dehttp://
> guides.rubyonrails.org/security.htmlethttp://baseunderattack.com/2008/04/18/ruby-on-rails-and-csrf-protection/
> ,
> > et Rails semble bien distinguer ce qui a été déclenché par une url
> > directe avec manipulation du referer, de ce qui a été déclenché en
> > interne avec referer « local » à l'application. Comme ce n'est
> > vraiment pas ma spécialité, je ne saurais dire si ça tient la route,
> > mais je ne vois pas trop comment faire autrement.
> >
>
> >
>

--~--~---------~--~----~------------~-------~--~----~
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]
-~----------~----~----~----~------~----~------~--~---

Répondre à