14 bons réflexes de sécurité à adopter en Rails

Publié le 1 avril | par Neoweb| Ruby

Lorsque vous mettez votre application Ruby on Rails en production sur un server, vous l’ouvrez au grand public. Si vous ne faites pas attention à la sécurité vous pouvez très vite vous retrouver la cible de hackers, spammers et autre script kiddies qui représentent à eux seul la majeur partie des attaques rencontrées.

Voici donc une liste des 14 bon comportements minimum à avoir lors du développement de votre application:

1-) Ne croyez pas un utilisateur connecté, en effet la couche authentification à elle seule ne suffit pas, vous devez protéger votre application en implémentant aussi une couche d’autorisation permettant de filtrer l’accès à certaines parties de votre site selon le rôle de l’utilisateur.

2-) Prenez garde à l’assignement massif (mass assignments) ! Choisissez quels attributs seront accessibles à l’aide de attr_accessible de façon à affiner l’assignement.

3-) Rendez les attributs sensibles non-éditables grâce à attr_readonly de façon à conserver leur intégrité.

4-) Faites attention aux injections SQL, plus particulièrement si vous avez quelques lignes de SQL pur dans votre code.

5-) Empêchez l’upload de fichier exécutable.

6-) Filtrez les paramètres sensibles dans les logs.

7-) Utilisez protect_from_forgery et csrf_meta_tag afin d’éviter les attaques « Cross-Site Request Forgery » (exploitation de la confiance de l’application sur un navigateur)

8-)Si vous êtes sur Rails 2.* ou inférieur, utilisez le ‘h’ helper pour éviter les XSS (Cross-Site Scripting) attaques (exploitation de la confiance de l’application sur un utilisateur). Non nécessaire sous Rails 3, car c’est le comportement par défaut.

9-) Faites attention aux hijacks de session (usurpation de session utilisateur).

10-) Evitez d’utiliser les redirections sur les URLs fournis par les utilisateurs.

11-) Evitez d’utiliser les « user params » ou « content » dans la méthode send_file.

12-) Rendez les méthodes privées. (en dehors des actions

du controller).

13-) Vérifiez vos dépendances pour les mises à jours et patches de sécurités.

14-) Ne stockez pas vos mot de passes en clair dans la base de donnée.

source: http://www.railsinside.com/tips/486-14-bare-minimum-security-checks-before-releasing-a-rails-app.html

 


A propos de l'auteur

a rédigé 273 articles sur Neoweb Mag


Les commentaires sont fermés.

Retour en haut ↑