{"id":27233,"date":"2017-10-31T14:05:41","date_gmt":"2017-10-31T14:05:41","guid":{"rendered":"https:\/\/dev.railscarma.com\/preventing-security-issues-rails\/"},"modified":"2022-09-06T09:26:04","modified_gmt":"2022-09-06T09:26:04","slug":"prevenir-les-problemes-de-securite","status":"publish","type":"post","link":"https:\/\/www.railscarma.com\/fr\/blog\/articles-techniques\/prevenir-les-problemes-de-securite\/","title":{"rendered":"Pr\u00e9venir les probl\u00e8mes de s\u00e9curit\u00e9 dans Rails"},"content":{"rendered":"<div data-elementor-type=\"wp-post\" data-elementor-id=\"27233\" class=\"elementor elementor-27233\" data-elementor-post-type=\"post\">\n\t\t\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-28fbd620 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"28fbd620\" data-element_type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-6df0c172\" data-id=\"6df0c172\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-27ce2ffe elementor-widget elementor-widget-text-editor\" data-id=\"27ce2ffe\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>La s\u00e9curit\u00e9 est une pr\u00e9occupation majeure pour tout d\u00e9veloppeur aspirant \u00e0 un d\u00e9veloppement r\u00e9ussi et durable d\u2019applications web. Chaque d\u00e9veloppeur souhaite coder de mani\u00e8re \u00e0 ce que ses applications soient aussi s\u00e9curis\u00e9es que possible contre toute attaque. Cependant, aucun code 100% ne peut \u00eatre exempt de bogues ou s\u00e9curis\u00e9. Ainsi, les d\u00e9veloppeurs sont conscients qu\u2019ils doivent faire de leur mieux pour cr\u00e9er leurs applications avec un minimum de vuln\u00e9rabilit\u00e9 aux attaques. La d\u00e9tection des vuln\u00e9rabilit\u00e9s est facile, mais les failles de s\u00e9curit\u00e9 et les piratages peuvent entra\u00eener des pertes. C&#039;est la raison pour laquelle il est toujours pr\u00e9f\u00e9rable de v\u00e9rifier les probl\u00e8mes de s\u00e9curit\u00e9 d\u00e8s le d\u00e9but du processus de d\u00e9veloppement d&#039;une application, tout en effectuant des contr\u00f4les de qualit\u00e9 r\u00e9guliers pour garder le cap.<\/p><h3><strong>1] S\u00e9ances<\/strong><\/h3><p>Un bon point de d\u00e9part pour \u00e9valuer la s\u00e9curit\u00e9 est les sessions, qui peuvent \u00eatre vuln\u00e9rables \u00e0 certaines attaques.<\/p><pre><code>session[:user_id] = @current_user.id User.find(session[:user_id])<\/code><\/pre><p>\u2013 Par d\u00e9faut, Ruby on Rails utilise un magasin de sessions bas\u00e9 sur les cookies. Cela implique qu&#039;\u00e0 moins que quelque chose ne soit modifi\u00e9, la session n&#039;expirera pas sur le serveur. Cela signifie donc que nous ne devons jamais conserver de donn\u00e9es sensibles telles que des mots de passe, des identifiants, etc. dans les sessions.<br \/>\u2013 La meilleure pratique consiste donc \u00e0 travailler avec une session bas\u00e9e sur une base de donn\u00e9es, ce qui est tr\u00e8s simple avec Rails \u2013<\/p><p>Projet ::Application.config.session_store :active_record_store<br \/>L&#039;ID de session est une cha\u00eene hexad\u00e9cimale al\u00e9atoire de 32 caract\u00e8res.<\/p><p>L&#039;ID de session est g\u00e9n\u00e9r\u00e9 \u00e0 l&#039;aide de SecureRandom.hex qui g\u00e9n\u00e8re une cha\u00eene hexad\u00e9cimale al\u00e9atoire \u00e0 l&#039;aide de l&#039;une des m\u00e9thodes sp\u00e9cifiques \u00e0 la plate-forme telles que OpenSSL, \/dev\/urandom ou Win32, pour g\u00e9n\u00e9rer des nombres al\u00e9atoires cryptographiquement s\u00e9curis\u00e9s. Actuellement, il n&#039;est pas possible d&#039;effectuer une attaque par force brute, c&#039;est-\u00e0-dire par essais et erreurs, sur les informations de connexion dans les identifiants de session Rails.<\/p><p>Voici quelques-unes des attaques courantes bas\u00e9es sur des sessions\u00a0:<br \/>D\u00e9tournement de session\u00a0:\u00a0-\u00a0cela permet aux attaquants de voler l&#039;identifiant de session d&#039;un utilisateur et d&#039;utiliser l&#039;application Web au nom de la victime.<br \/>Correction de session\u00a0: - En plus de voler l&#039;ID de session d&#039;un utilisateur, l&#039;attaquant est \u00e9galement capable de corriger un ID de session qu&#039;il conna\u00eet. C\u2019est ce qu\u2019on appelle la fixation de session.<br \/>Expiration de session : - Les attaquants tentent \u00e9galement d&#039;augmenter la dur\u00e9e de l&#039;attaque avec des sessions qui n&#039;expirent jamais. Les attaques telles que la falsification de requ\u00eates intersites (CSRF), le d\u00e9tournement de session et la fixation de session en sont des exemples.<\/p><h3><strong>2]Injection de commande<\/strong><\/h3><p>Une application devient vuln\u00e9rable \u00e0 l&#039;injection de commandes, dans le cas o\u00f9 l&#039;attaquant est capable d&#039;influencer les param\u00e8tres de ligne de commande ou les commandes Unix dans leur ensemble. Cependant, comme l&#039;ex\u00e9cution de commandes UNIX dans Rails n&#039;est pas courante, ces attaques sont moins susceptibles d&#039;avoir lieu.<br \/>D&#039;un autre c\u00f4t\u00e9, des vuln\u00e9rabilit\u00e9s peuvent survenir dans un processus en arri\u00e8re-plan utilisant directement les commandes Unix pour les donn\u00e9es client.<\/p><p>Voici quelques-unes des m\u00e9thodes de ligne de commande Rails courantes\u00a0:<br \/>%x[\u2026]<br \/>syst\u00e8me()<br \/>ex\u00e9cutable()<br \/>`&#8230;`<br \/>Il convient \u00e9galement de noter qu\u2019il existe plusieurs fa\u00e7ons d\u2019encha\u00eener des commandes, mais cela d\u00e9pend \u00e9galement du syst\u00e8me d\u2019exploitation h\u00f4te. Exemples\u00a0: &quot;&amp;&quot;, &quot;&amp;&amp;&quot;, &quot;|&quot;, &quot;||&quot; etc.<br \/>Variables d&#039;environnement s\u00e9curis\u00e9es lors de l&#039;ex\u00e9cution de commandes<br \/>Les processus ex\u00e9cut\u00e9s par vos applications Rails obtiennent les variables d&#039;environnement des processus parents qui peuvent comprendre les cl\u00e9s API, etc.<\/p><h3><strong>3]Injection SQL<\/strong><\/h3><p>L&#039;injection SQL se produit lorsqu&#039;un utilisateur est capable de manipuler une valeur utilis\u00e9e de mani\u00e8re non s\u00e9curis\u00e9e dans une requ\u00eate SQL. Cela peut entra\u00eener une perte de donn\u00e9es, des fuites de donn\u00e9es, des privil\u00e8ges \u00e9lev\u00e9s, entre autres r\u00e9sultats ind\u00e9sirables.<\/p><p>L&#039;injection SQL est une attaque tr\u00e8s simple et courante qui se produit g\u00e9n\u00e9ralement et son impact peut \u00eatre tr\u00e8s grave en fonction du site Web et de la situation dans laquelle elle se produit.<\/p><p>En tant que d\u00e9veloppeurs, nous devons prendre en compte toutes les possibilit\u00e9s o\u00f9 une injection SQL peut se produire et les g\u00e9rer en cons\u00e9quence.<\/p><p>Voici \u00e0 quoi ressemble l&#039;injection SQL\u00a0:<\/p><pre><code>Employ\u00e9.all(:conditions =&gt; &quot;d\u00e9signation = #{params[:d\u00e9signation]}&quot;)<\/code><\/pre><p>Le code ci-dessus est vuln\u00e9rable \u00e0 l\u2019injection SQL, le code suivant emp\u00eachera l\u2019injection SQL.<\/p><pre><code>Employ\u00e9.all(:conditions =&gt; [&#039;d\u00e9signation = ?&#039;, params[:d\u00e9signation]])<\/code><\/pre><p>OU<\/p><pre><code>Employ\u00e9.all(:conditions =&gt; {:designation =&gt; params[:designation]})<\/code><\/pre><h5><strong>Contre-mesures contre l&#039;injection SQL dans Rails<\/strong><\/h5><p>Tester chaque instruction pour l&#039;injection SQL peut \u00eatre un travail fastidieux, mais nous devrions prendre des contre-mesures comme un scanner de code statique comme Brakeman et vous pouvez \u00e9crire des cas de tests unitaires.<br \/><strong>a)R\u00e8gle g\u00e9n\u00e9rale :<\/strong>\u2013 N&#039;utilisez jamais de param\u00e8tres dans l&#039;inflexion de cha\u00eene (#{}) comme \u00e7a<br \/>Par exemple<\/p><pre><code>Utilisateur.where(&quot;name = &#039;#{params[:name]}&#039;&quot;)<\/code><\/pre><p><strong>b)Attention, les param\u00e8tres peuvent \u00e9galement \u00eatre un tableau, par exemple\u00a0:<\/strong><\/p><p>params[:user] si vous ajoutez ?user[]=1 \u00e0 l&#039;URL. L&#039;utilisateur existe ? params[:user] ex\u00e9cutera alors la requ\u00eate SELECT 1 AS one FROM \u00abusers\u00bb WHERE (1) LIMIT 1.<\/p><h3><strong>4] Scripts intersites (XSS)<\/strong><\/h3><p>Avec l&#039;aide de XSS, un attaquant peut ex\u00e9cuter des scripts dans le contexte de s\u00e9curit\u00e9 de votre application Web.<\/p><p>Consid\u00e9rez cet extrait de vue Rails\u00a0: &lt;%= @flat.title %&gt;. Si le titre de l&#039;appartement est modifi\u00e9 avec l&#039;ajout du HTML, cette vue Rails restitue ce HTML dans le contexte de s\u00e9curit\u00e9 de l&#039;application. Ainsi, le navigateur ex\u00e9cuterait le HTML, qui est XSS.<\/p><p>En fait, cela ne fonctionne pas encore dans Rails de nos jours, dans la version 2 de Rails, vous devrez \u00e9chapper \u00e0 chaque entr\u00e9e utilisateur\u00a0: &lt;%= h(@flat.title) %&gt;<br \/>De nos jours, Rails est livr\u00e9 avec un indicateur sur chaque cha\u00eene qui la marque comme HTML, qu&#039;elle soit s\u00fbre ou non\u00a0: @flat.title.html_safe?. Dans le cas o\u00f9 il n&#039;est pas s\u00e9curis\u00e9 (par exemple depuis un param\u00e8tre, depuis la base de donn\u00e9es, \u2026) il sera automatiquement \u00e9chapp\u00e9 lors de son utilisation de cette mani\u00e8re\u00a0: &lt;%= @flat.title %&gt;<br \/>Dans Rails 3.0, la protection contre XSS est un comportement par d\u00e9faut.<\/p><h3><strong>Contre-mesures<\/strong><\/h3><p><strong>a) Une strat\u00e9gie de politique de s\u00e9curit\u00e9 du contenu (CSP)<\/strong><\/p><p>Une s\u00e9curit\u00e9 du contenu <a href=\"https:\/\/www.railscarma.com\/fr\/politique-de-cookies\/\">Politique<\/a> se pr\u00e9sente essentiellement sous la forme d&#039;un en-t\u00eate HTTP et cela fait une d\u00e9claration des r\u00e8gles sur ce que toutes les sources sont autoris\u00e9es pour tous types d&#039;actifs. En cons\u00e9quence du respect de ces r\u00e8gles, tout le reste est interdit. Une fois impl\u00e9ment\u00e9 correctement, il est capable d\u2019\u00e9liminer toutes les vuln\u00e9rabilit\u00e9s Cross-Site-Scripting (XSS) de votre application.<\/p><p><strong>b) HTML-Safe, ActiveSupport :: SafeBuffer<\/strong><\/p><p>Le module ActiveSupport::SafeBuffer a \u00e9t\u00e9 introduit par Rails 3 pour ajouter un indicateur HTML-safe aux cha\u00eenes. Par d\u00e9faut, c&#039;est faux, surtout lorsque la cha\u00eene a une source externe telle que la base de donn\u00e9es ou les param\u00e8tres. Le drapeau est renvoy\u00e9 avec \u00ab\u00a0string\u00a0\u00bb.html_safe?.<\/p><p>La m\u00e9thode d&#039;\u00e9chappement HTML h() \u00e9chappe \u00e0 la cha\u00eene marquant une cha\u00eene comme \u00e9tant s\u00e9curis\u00e9e pour HTML.<\/p><pre><code>h(&quot;html&gt;&quot;).html_safe? #=&gt; vrai (&quot;html&gt;&quot;).html_safe ? #=&gt;faux<\/code><\/pre><p><strong>c) Pr\u00e9vention XSS OWASP (Open Web Application Security Project)<\/strong><\/p><p>Pour la pr\u00e9vention du XSS, toutes les donn\u00e9es non fiables doivent \u00eatre refus\u00e9es et emp\u00each\u00e9es d&#039;\u00eatre plac\u00e9es directement dans le HTML ou tout autre contexte (comme JavaScript, CSS, les contextes d&#039;attribut).<\/p><p><strong>d) Protection XSS dans les mod\u00e8les HAML<\/strong><\/p><p>Lors de l&#039;utilisation des mod\u00e8les Haml, au lieu d&#039;ERB, les cha\u00eenes sont automatiquement \u00e9chapp\u00e9es de la m\u00eame mani\u00e8re que dans les mod\u00e8les ERB. Et de la m\u00eame mani\u00e8re qu&#039;avec les mod\u00e8les ERB, les cha\u00eenes HTML s\u00e9curis\u00e9es (string.html_safe? renvoie true) ne sont pas automatiquement ignor\u00e9es. La notation != dans Haml fonctionne de la m\u00eame mani\u00e8re que &lt;%= raw(\u2026) %&gt; fonctionne dans ERB, elle restitue donc la version sans \u00e9chappement.<br \/>Par d\u00e9faut,<\/p><pre><code>=&quot; <em>soulign\u00e9 <em>&quot; != &quot; <em>soulign\u00e9 <em>&quot;<\/em><\/em><\/em><\/em><\/code><\/pre><p>compile pour\u00a0:<\/p><pre><code><em>soulign\u00e9<\/em> <em>soulign\u00e9<\/em><\/code><\/pre><p>Il faut donc faire attention lors de l&#039;utilisation de != dans Haml et s&#039;assurer qu&#039;aucune donn\u00e9e utilisateur n&#039;est rendue sans \u00e9chappement.<br \/>Voici quelques mesures pr\u00e9ventives qui peuvent \u00eatre prises lors du d\u00e9veloppement d\u2019une application ferroviaire.<\/p><h5><strong>1] Authentification<\/strong><\/h5><p>Utilisez l&#039;appareil ou la gemme Authlogic.<br \/>\u2013 Pour activer l&#039;authentification, n&#039;oubliez pas d&#039;ajouter -&gt;<\/p><p>classe ProjectController &lt;ApplicationController<br \/>avant_filter\u00a0:authenticate_user<br \/>\u2013 Par d\u00e9faut, Devise ne n\u00e9cessite que 6 caract\u00e8res pour un mot de passe. Le minimum peut \u00eatre modifi\u00e9 dans\u00a0: \/config\/initializers\/devise.rb<br \/>config.password_length = 8..128<br \/>\u2013 Vous pouvez modifier la complexit\u00e9 du mot de passe en ajoutant le code suivant dans le mod\u00e8le utilisateur.<\/p><pre><code>valider :password_complexity def password_complexity si password.present ? et non password.match(\/\\A(?=.*[az])(?=.*[AZ])(?=.*\\d).+\\z\/) error.add :password, &quot;doit inclure au moins une lettre minuscule, une lettre majuscule et un chiffre&quot; fin fin<\/code><\/pre><h5><strong>2] R\u00e9f\u00e9rence d&#039;objet directe non s\u00e9curis\u00e9e ou navigation forc\u00e9e<\/strong><\/h5><p>\u2013 Les applications Ruby on Rails utilisent une structure d&#039;URL reposante, rendant les chemins utilis\u00e9s principalement devinables et intuitifs. Ainsi, afin de se prot\u00e9ger contre un utilisateur tentant d\u2019acc\u00e9der ou de modifier des donn\u00e9es appartenant \u00e0 un autre utilisateur, les actions doivent \u00eatre sp\u00e9cifiquement contr\u00f4l\u00e9es. Il n\u2019existe pas de protection int\u00e9gr\u00e9e de ce type sur une application Vanilla Rails. De plus, cela peut \u00eatre effectu\u00e9 manuellement au niveau du contr\u00f4leur.<br \/>\u2013 Utilisez cancancan ou pandit pour le contr\u00f4le d\u2019acc\u00e8s<\/p><h5><strong>3] Affectation de masse et param\u00e8tres forts<\/strong><\/h5><pre><code>- projet de classe &lt; ActiveRecord::Base attr_accessible :name, :admin end<\/code><\/pre><p>Selon l&#039;exemple ci-dessus, avec l&#039;attribut admin accessible, les \u00e9l\u00e9ments suivants pourraient fonctionner\u00a0:<br \/>\u2013 curl -d \u00ab project[name]=triage&amp;project[admin]=1 \u00bb h\u00f4te:port\/projets<br \/>\u2013 config.active_record.whitelist_attributes = vrai<\/p><h5><strong>4] Redirections et transferts<\/strong><\/h5><p>\u2013 Il est conseill\u00e9 d\u2019\u00e9viter d\u2019utiliser les redirections qui utilisent des param\u00e8tres<br \/>Par exemple\u00a0:\u00a0- \/\/www.example.com\/redirect?url=\/\/www.example_commerce_site.com\/checkout<br \/>\u2013 une protection restrictive consiste \u00e0 utiliser le :only_path<\/p><pre><code>commencer si chemin = URI.parse(params[:url]).path redirect_to chemin de fin de sauvetage URI::InvalidURIError redirect_to &#039;\/&#039; end<\/code><\/pre><p>\u2013 Ayez un hachage des sites approuv\u00e9s et autorisez uniquement ceux-ci \u00e0 \u00eatre redirig\u00e9s.<\/p><h5><strong>5] Chemins de rendu dynamiques<\/strong><\/h5><p>\u2013 Des pr\u00e9cautions doivent \u00eatre prises lorsque vous effectuez le rendu dynamique d\u2019une vue en fonction de certaines conditions. Cela pourrait entra\u00eener le chargement de la vue administrateur.<\/p><h5><strong>6] Partage de ressources entre origines<\/strong><\/h5><p>\u2013 Comme le t\u00e9l\u00e9chargement de fichiers.<br \/>\u2013 Le site de r\u00e9ception doit restreindre et autoriser uniquement les domaines sur liste blanche et s&#039;assurer que les demandes proviennent \u00e9galement de ces domaines uniquement.<br \/>\u2013 D\u00e9finissez \u00e9galement l\u2019en-t\u00eate Access-Control-Allow-Origin \u00e0 la fois dans la r\u00e9ponse \u00e0 la demande OPTIONS et \u00e0 la demande POST. En effet, la requ\u00eate OPTIONS est envoy\u00e9e en premier, afin de d\u00e9terminer si le site distant ou r\u00e9cepteur autorise le domaine demandeur.<br \/>\u2013 Une requ\u00eate POST est envoy\u00e9e. Encore une fois, l&#039;en-t\u00eate doit \u00eatre d\u00e9fini pour que la transaction soit affich\u00e9e comme r\u00e9ussie.<\/p><h5><strong>7] Bogues de logique m\u00e9tier<\/strong><\/h5><p>\u2013 Les applications, quelle que soit la technologie sur laquelle elles sont bas\u00e9es, peuvent comporter des erreurs de logique m\u00e9tier susceptibles de conduire \u00e0 des bogues de s\u00e9curit\u00e9. Il peut \u00eatre tr\u00e8s difficile de d\u00e9tecter de tels bugs de s\u00e9curit\u00e9 \u00e0 l\u2019aide des outils automatis\u00e9s. Des pratiques telles que la r\u00e9vision r\u00e9guli\u00e8re des codes, la programmation en bin\u00f4me et l&#039;\u00e9criture de tests unitaires peuvent vous aider \u00e0 mieux \u00e9viter l&#039;apparition de tels bogues de s\u00e9curit\u00e9.<\/p><h5><strong>8] Fichiers sensibles<\/strong><\/h5><p>Voici quelques fichiers dont nous devons prendre soin lors du d\u00e9veloppement d\u2019une application Web.<br \/>\/config\/database.yml- Peut contenir des informations d&#039;identification de production.<br \/>\/config\/initializers\/secret_token.rb \u2013 Contient un secret utilis\u00e9 pour hacher le cookie de session.<br \/>\/db\/seeds.rb \u2013 Peut contenir des donn\u00e9es de d\u00e9part, y compris l&#039;utilisateur administrateur d&#039;amor\u00e7age.<br \/>\/db\/development.sqlite3 \u2013 Peut contenir des donn\u00e9es r\u00e9elles.<\/p><h5><strong>9] Chiffrement<\/strong><\/h5><p>Ruby on Rails utilise le cryptage du syst\u00e8me d&#039;exploitation. Vous ne devriez presque jamais \u00e9crire vos propres solutions de chiffrement.<br \/>Mettre \u00e0 jour les rails et disposer d&#039;un processus de mise \u00e0 jour des d\u00e9pendances.<\/p><h4><strong>Outils pour d\u00e9tecter les probl\u00e8mes de s\u00e9curit\u00e9 dans l&#039;application Rails<\/strong><\/h4><ul><li>Serre-frein<\/li><li>audit du bundler<\/li><li>Codecode ::Aube<\/li><li>Rack::Attaque<\/li><li>Tarentule<\/li><li>Ceinture \u00e0 outils Hakiri<\/li><\/ul>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-bd74efd elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"bd74efd\" data-element_type=\"section\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-3a1d5fe5\" data-id=\"3a1d5fe5\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-3e7fca60 elementor-widget elementor-widget-heading\" data-id=\"3e7fca60\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Abonnez-vous pour les derni\u00e8res mises \u00e0 jour<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-4f0cf579 elementor-widget elementor-widget-shortcode\" data-id=\"4f0cf579\" data-element_type=\"widget\" data-widget_type=\"shortcode.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-shortcode\">\t\t\t\t\t<script type=\"text\/javascript\">\n\t\t\t\t\t\tvar gCaptchaSibWidget;\n                        var onloadSibCallbackInvisible = function () {\n\n                            var element = document.getElementsByClassName('sib-default-btn');\n                            var countInvisible = 0;\n                            var indexArray = [];\n                            jQuery('.sib-default-btn').each(function (index, el) {\n                                if ((jQuery(el).attr('id') == \"invisible\")) {\n                                    indexArray[countInvisible] = index;\n                                    countInvisible++\n                                }\n                            });\n\n                            jQuery('.invi-recaptcha').each(function (index, el) {\n                                grecaptcha.render(element[indexArray[index]], {\n                                    'sitekey': jQuery(el).attr('data-sitekey'),\n                                    'callback': sibVerifyCallback,\n                                });\n                            });\n                        };\n\t\t\t\t\t<\/script>\n\t\t\t\t\t                <script src=\"https:\/\/www.google.com\/recaptcha\/api.js?onload=onloadSibCallbackInvisible&render=explicit\" async defer><\/script>\n\t\t\t\t\n\t\t\t<form id=\"sib_signup_form_1\" method=\"post\" class=\"sib_signup_form\" action=\"\">\n\t\t\t\t<div class=\"sib_loader\" style=\"display:none;\"><img\n\t\t\t\t\t\t\tsrc=\"https:\/\/www.railscarma.com\/wp-includes\/images\/spinner.gif\" alt=\"chargeur\"><\/div>\n\t\t\t\t<input type=\"hidden\" name=\"sib_form_action\" value=\"subscribe_form_submit\">\n\t\t\t\t<input type=\"hidden\" name=\"sib_form_id\" value=\"1\">\n                <input type=\"hidden\" name=\"sib_form_alert_notice\" value=\"Please fill out this field\">\n                <input type=\"hidden\" name=\"sib_form_invalid_email_notice\" value=\"Your email address is invalid\">\n                <input type=\"hidden\" name=\"sib_security\" value=\"d7f7626ab9\">\n\t\t\t\t<div class=\"sib_signup_box_inside_1\">\n\t\t\t\t\t<div style=\"\/*display:none*\/\" class=\"sib_msg_disp\">\n\t\t\t\t\t<\/div>\n                                            <div id=\"sib_captcha_invisible\" class=\"invi-recaptcha\" data-sitekey=\"6LdikOAaAAAAAJ6SWrrKVQrtw7TQpQAEnv0HS0G3\"><\/div>\n                    \t\t\t\t\t<p class=\"sib-email-area\">\r\n    <label class=\"sib-email-area\"><\/label>\r\n    <input type=\"email\" class=\"sib-email-area\" name=\"email\" required=\"required\" placeholder=\"Adresse e-mail\">\r\n<\/p>\r\n<p class=\"sib-NAME-area\">\r\n    <label class=\"sib-NAME-area\"><\/label>\r\n    <input type=\"text\" class=\"sib-NAME-area\" name=\"NAME\" placeholder=\"Nom\">\r\n<\/p>\r\n<p>\r\n    <input type=\"submit\" id=\"invisible\" class=\"sib-default-btn\" value=\"S&#039;abonner\">\r\n<\/p>\t\t\t\t<\/div>\n\t\t\t<input type=\"hidden\" name=\"trp-form-language\" value=\"fr\"\/><\/form>\n\t\t\t<style>\n\t\t\t\tform#sib_signup_form_1 p.sib-alert-message {\n    padding: 6px 12px;\n    margin-bottom: 20px;\n    border: 1px solid transparent;\n    border-radius: 4px;\n    -webkit-box-sizing: border-box;\n    -moz-box-sizing: border-box;\n    box-sizing: border-box;\n}\nform#sib_signup_form_1 p.sib-alert-message-error {\n    background-color: #f2dede;\n    border-color: #ebccd1;\n    color: #a94442;\n}\nform#sib_signup_form_1 p.sib-alert-message-success {\n    background-color: #dff0d8;\n    border-color: #d6e9c6;\n    color: #3c763d;\n}\nform#sib_signup_form_1 p.sib-alert-message-warning {\n    background-color: #fcf8e3;\n    border-color: #faebcc;\n    color: #8a6d3b;\n}\n\t\t\t<\/style>\n\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<\/div>\n\t\t  <div class=\"related-post slider\">\r\n        <div class=\"headline\">Articles Similaires<\/div>\r\n    <div class=\"post-list owl-carousel\">\r\n\r\n            <div class=\"item\">\r\n            <div class=\"thumb post_thumb\">\r\n    <a  title=\"Gemme de Kaminari\" href=\"https:\/\/www.railscarma.com\/fr\/blog\/articles-techniques\/joyau-kaminari\/?related_post_from=37277\">\r\n\r\n      <img decoding=\"async\" width=\"800\" height=\"300\" src=\"https:\/\/www.railscarma.com\/wp-content\/uploads\/2023\/04\/kaminari-gem.jpg\" class=\"attachment-full size-full wp-post-image\" alt=\"joyau kaminari\" srcset=\"https:\/\/www.railscarma.com\/wp-content\/uploads\/2023\/04\/kaminari-gem.jpg 800w, https:\/\/www.railscarma.com\/wp-content\/uploads\/2023\/04\/kaminari-gem-300x113.jpg 300w, https:\/\/www.railscarma.com\/wp-content\/uploads\/2023\/04\/kaminari-gem-768x288.jpg 768w\" sizes=\"(max-width: 800px) 100vw, 800px\" \/>\r\n\r\n    <\/a>\r\n  <\/div>\r\n\r\n  <a class=\"title post_title\"  title=\"Gemme de Kaminari\" href=\"https:\/\/www.railscarma.com\/fr\/blog\/articles-techniques\/joyau-kaminari\/?related_post_from=37277\">\r\n        Gemme de Kaminari  <\/a>\r\n\r\n        <\/div>\r\n              <div class=\"item\">\r\n            <div class=\"thumb post_thumb\">\r\n    <a  title=\"Pourquoi engager des d\u00e9veloppeurs Ruby on Rails en 2026 ?\" href=\"https:\/\/www.railscarma.com\/fr\/blog\/ror\/pourquoi-embaucher-des-developpeurs-ruby-on-rails\/?related_post_from=30627\">\r\n\r\n      <img decoding=\"async\" width=\"800\" height=\"300\" src=\"https:\/\/www.railscarma.com\/wp-content\/uploads\/2019\/01\/why-to-hire-ruby-on-rails-developers-in-2022.jpg\" class=\"attachment-full size-full wp-post-image\" alt=\"pourquoi embaucher des d\u00e9veloppeurs Ruby on Rails en 2022\" srcset=\"https:\/\/www.railscarma.com\/wp-content\/uploads\/2019\/01\/why-to-hire-ruby-on-rails-developers-in-2022.jpg 800w, https:\/\/www.railscarma.com\/wp-content\/uploads\/2019\/01\/why-to-hire-ruby-on-rails-developers-in-2022-300x113.jpg 300w, https:\/\/www.railscarma.com\/wp-content\/uploads\/2019\/01\/why-to-hire-ruby-on-rails-developers-in-2022-768x288.jpg 768w\" sizes=\"(max-width: 800px) 100vw, 800px\" \/>\r\n\r\n    <\/a>\r\n  <\/div>\r\n\r\n  <a class=\"title post_title\"  title=\"Pourquoi engager des d\u00e9veloppeurs Ruby on Rails en 2026 ?\" href=\"https:\/\/www.railscarma.com\/fr\/blog\/ror\/pourquoi-embaucher-des-developpeurs-ruby-on-rails\/?related_post_from=30627\">\r\n        Pourquoi engager des d\u00e9veloppeurs Ruby on Rails en 2026 ?  <\/a>\r\n\r\n        <\/div>\r\n              <div class=\"item\">\r\n            <div class=\"thumb post_thumb\">\r\n    <a  title=\"R\u00e9cup\u00e9ration de donn\u00e9es dans Rails en traitant CSV\" href=\"https:\/\/www.railscarma.com\/fr\/blog\/articles-techniques\/grattage-de-donnees-dans-les-rails-en-traitant-csv\/?related_post_from=31591\">\r\n\r\n      <img decoding=\"async\" width=\"800\" height=\"300\" src=\"https:\/\/www.railscarma.com\/wp-content\/uploads\/2020\/09\/DATA-SCRAPING-IN-RAILS-BY-PROCESSING-CSV.png\" class=\"attachment-full size-full wp-post-image\" alt=\"\" srcset=\"https:\/\/www.railscarma.com\/wp-content\/uploads\/2020\/09\/DATA-SCRAPING-IN-RAILS-BY-PROCESSING-CSV.png 800w, https:\/\/www.railscarma.com\/wp-content\/uploads\/2020\/09\/DATA-SCRAPING-IN-RAILS-BY-PROCESSING-CSV-300x113.png 300w, https:\/\/www.railscarma.com\/wp-content\/uploads\/2020\/09\/DATA-SCRAPING-IN-RAILS-BY-PROCESSING-CSV-768x288.png 768w\" sizes=\"(max-width: 800px) 100vw, 800px\" \/>\r\n\r\n    <\/a>\r\n  <\/div>\r\n\r\n  <a class=\"title post_title\"  title=\"R\u00e9cup\u00e9ration de donn\u00e9es dans Rails en traitant CSV\" href=\"https:\/\/www.railscarma.com\/fr\/blog\/articles-techniques\/grattage-de-donnees-dans-les-rails-en-traitant-csv\/?related_post_from=31591\">\r\n        R\u00e9cup\u00e9ration de donn\u00e9es dans Rails en traitant CSV  <\/a>\r\n\r\n        <\/div>\r\n              <div class=\"item\">\r\n            <div class=\"thumb post_thumb\">\r\n    <a  title=\"Passer des appels vocaux via les applications Web Ruby on Rails\" href=\"https:\/\/www.railscarma.com\/fr\/blog\/articles-techniques\/passer-des-appels-vocaux-via-les-applications-web-ruby-on-rails\/?related_post_from=31309\">\r\n\r\n      <img decoding=\"async\" width=\"800\" height=\"300\" src=\"https:\/\/www.railscarma.com\/wp-content\/uploads\/2020\/07\/MAKE-VOICE-CALLS-THROUGH-RUBY-ON-RAILS-WEB-APPLICATIONS.png\" class=\"attachment-full size-full wp-post-image\" alt=\"\" srcset=\"https:\/\/www.railscarma.com\/wp-content\/uploads\/2020\/07\/MAKE-VOICE-CALLS-THROUGH-RUBY-ON-RAILS-WEB-APPLICATIONS.png 800w, https:\/\/www.railscarma.com\/wp-content\/uploads\/2020\/07\/MAKE-VOICE-CALLS-THROUGH-RUBY-ON-RAILS-WEB-APPLICATIONS-300x113.png 300w, https:\/\/www.railscarma.com\/wp-content\/uploads\/2020\/07\/MAKE-VOICE-CALLS-THROUGH-RUBY-ON-RAILS-WEB-APPLICATIONS-768x288.png 768w\" sizes=\"(max-width: 800px) 100vw, 800px\" \/>\r\n\r\n    <\/a>\r\n  <\/div>\r\n\r\n  <a class=\"title post_title\"  title=\"Passer des appels vocaux via les applications Web Ruby on Rails\" href=\"https:\/\/www.railscarma.com\/fr\/blog\/articles-techniques\/passer-des-appels-vocaux-via-les-applications-web-ruby-on-rails\/?related_post_from=31309\">\r\n        Passer des appels vocaux via les applications Web Ruby on Rails  <\/a>\r\n\r\n        <\/div>\r\n      \r\n  <\/div>\r\n\r\n  <script>\r\n      <\/script>\r\n  <style>\r\n    .related-post {}\r\n\r\n    .related-post .post-list {\r\n      text-align: left;\r\n          }\r\n\r\n    .related-post .post-list .item {\r\n      margin: 10px;\r\n      padding: 10px;\r\n          }\r\n\r\n    .related-post .headline {\r\n      font-size: 14px !important;\r\n      color: #999999 !important;\r\n          }\r\n\r\n    .related-post .post-list .item .post_thumb {\r\n      max-height: 220px;\r\n      margin: 10px 0px;\r\n      padding: 0px;\r\n      display: block;\r\n          }\r\n\r\n    .related-post .post-list .item .post_title {\r\n      font-size: 14px;\r\n      color: #000000;\r\n      margin: 10px 0px;\r\n      padding: 0px;\r\n      display: block;\r\n      text-decoration: none;\r\n          }\r\n\r\n    .related-post .post-list .item .post_excerpt {\r\n      font-size: 12px;\r\n      color: #3f3f3f;\r\n      margin: 10px 0px;\r\n      padding: 0px;\r\n      display: block;\r\n      text-decoration: none;\r\n          }\r\n\r\n    .related-post .owl-dots .owl-dot {\r\n          }\r\n\r\n      <\/style>\r\n      <script>\r\n      jQuery(document).ready(function($) {\r\n        $(\".related-post .post-list\").owlCarousel({\r\n          items: 2,\r\n          responsiveClass: true,\r\n          responsive: {\r\n            0: {\r\n              items: 1,\r\n            },\r\n            768: {\r\n              items: 2,\r\n            },\r\n            1200: {\r\n              items: 2,\r\n            }\r\n          },\r\n                      rewind: true,\r\n                                loop: true,\r\n                                center: false,\r\n                                autoplay: true,\r\n            autoplayHoverPause: true,\r\n                                nav: true,\r\n            navSpeed: 1000,\r\n            navText: ['<i class=\"fas fa-chevron-left\"><\/i>', '<i class=\"fas fa-chevron-right\"><\/i>'],\r\n                                dots: false,\r\n            dotsSpeed: 1200,\r\n                                                    rtl: false,\r\n          \r\n        });\r\n      });\r\n    <\/script>\r\n  <\/div>","protected":false},"excerpt":{"rendered":"<p>Security is a major concern for any developer aspiring for successful and sustainable development of web applications. Every developer wants to code in such a manner that their applications are as secure as possible from any attacks, however, no code can be 100% bug-free or secured. So, the developers are aware that they need to &hellip;<\/p>\n<p class=\"read-more\"> <a class=\"\" href=\"https:\/\/www.railscarma.com\/fr\/blog\/third-party-api-integration-solutions-in-ruby-on-rails\/\"> <span class=\"screen-reader-text\">Solutions d'int\u00e9gration d'API tierces en Ruby on Rails<\/span> Lire la suite \u00bb<\/a><\/p>","protected":false},"author":1,"featured_media":31715,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[384],"tags":[382],"class_list":["post-27233","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-technical-articles","tag-ruby-on-rails"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v26.8 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Preventing security issues in Rails - RailsCarma - Ruby on Rails Development Company specializing in Offshore Development<\/title>\n<meta name=\"description\" content=\"Security is a major concern for any developer aspiring for successful and sustainable development of web applications. Every developer wants to code in\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.railscarma.com\/fr\/blog\/articles-techniques\/prevenir-les-problemes-de-securite\/\" \/>\n<meta property=\"og:locale\" content=\"fr_FR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Preventing security issues in Rails - RailsCarma - Ruby on Rails Development Company specializing in Offshore Development\" \/>\n<meta property=\"og:description\" content=\"Security is a major concern for any developer aspiring for successful and sustainable development of web applications. Every developer wants to code in\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.railscarma.com\/fr\/blog\/articles-techniques\/prevenir-les-problemes-de-securite\/\" \/>\n<meta property=\"og:site_name\" content=\"RailsCarma - Ruby on Rails Development Company specializing in Offshore Development\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/RailsCarma\/\" \/>\n<meta property=\"article:published_time\" content=\"2017-10-31T14:05:41+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2022-09-06T09:26:04+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.railscarma.com\/wp-content\/uploads\/2017\/10\/Preventing-security-issues-in-Rails.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"800\" \/>\n\t<meta property=\"og:image:height\" content=\"300\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"admin\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@railscarma\" \/>\n<meta name=\"twitter:site\" content=\"@railscarma\" \/>\n<meta name=\"twitter:label1\" content=\"\u00c9crit par\" \/>\n\t<meta name=\"twitter:data1\" content=\"admin\" \/>\n\t<meta name=\"twitter:label2\" content=\"Dur\u00e9e de lecture estim\u00e9e\" \/>\n\t<meta name=\"twitter:data2\" content=\"9 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.railscarma.com\/blog\/technical-articles\/preventing-security-issues-rails\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.railscarma.com\/blog\/technical-articles\/preventing-security-issues-rails\/\"},\"author\":{\"name\":\"admin\",\"@id\":\"https:\/\/www.railscarma.com\/#\/schema\/person\/5f2228a2dec7549056e709de6eb85d21\"},\"headline\":\"Preventing security issues in Rails\",\"datePublished\":\"2017-10-31T14:05:41+00:00\",\"dateModified\":\"2022-09-06T09:26:04+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.railscarma.com\/blog\/technical-articles\/preventing-security-issues-rails\/\"},\"wordCount\":1668,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/www.railscarma.com\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.railscarma.com\/blog\/technical-articles\/preventing-security-issues-rails\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.railscarma.com\/wp-content\/uploads\/2017\/10\/Preventing-security-issues-in-Rails.jpg\",\"keywords\":[\"Ruby on rails\"],\"articleSection\":[\"Technical Articles\"],\"inLanguage\":\"fr-FR\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.railscarma.com\/blog\/technical-articles\/preventing-security-issues-rails\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.railscarma.com\/blog\/technical-articles\/preventing-security-issues-rails\/\",\"url\":\"https:\/\/www.railscarma.com\/blog\/technical-articles\/preventing-security-issues-rails\/\",\"name\":\"Preventing security issues in Rails - RailsCarma - Ruby on Rails Development Company specializing in Offshore Development\",\"isPartOf\":{\"@id\":\"https:\/\/www.railscarma.com\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.railscarma.com\/blog\/technical-articles\/preventing-security-issues-rails\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.railscarma.com\/blog\/technical-articles\/preventing-security-issues-rails\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.railscarma.com\/wp-content\/uploads\/2017\/10\/Preventing-security-issues-in-Rails.jpg\",\"datePublished\":\"2017-10-31T14:05:41+00:00\",\"dateModified\":\"2022-09-06T09:26:04+00:00\",\"description\":\"Security is a major concern for any developer aspiring for successful and sustainable development of web applications. Every developer wants to code in\",\"breadcrumb\":{\"@id\":\"https:\/\/www.railscarma.com\/blog\/technical-articles\/preventing-security-issues-rails\/#breadcrumb\"},\"inLanguage\":\"fr-FR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.railscarma.com\/blog\/technical-articles\/preventing-security-issues-rails\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"fr-FR\",\"@id\":\"https:\/\/www.railscarma.com\/blog\/technical-articles\/preventing-security-issues-rails\/#primaryimage\",\"url\":\"https:\/\/www.railscarma.com\/wp-content\/uploads\/2017\/10\/Preventing-security-issues-in-Rails.jpg\",\"contentUrl\":\"https:\/\/www.railscarma.com\/wp-content\/uploads\/2017\/10\/Preventing-security-issues-in-Rails.jpg\",\"width\":800,\"height\":300},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.railscarma.com\/blog\/technical-articles\/preventing-security-issues-rails\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.railscarma.com\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Preventing security issues in Rails\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.railscarma.com\/#website\",\"url\":\"https:\/\/www.railscarma.com\/\",\"name\":\"RailsCarma - Ruby on Rails Development Company specializing in Offshore Development\",\"description\":\"RailsCarma is a Ruby on Rails Development Company in Bangalore. We specialize in Offshore Ruby on Rails Development based out in USA and India. Hire experienced Ruby on Rails developers for the ultimate Web Experience.\",\"publisher\":{\"@id\":\"https:\/\/www.railscarma.com\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.railscarma.com\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"fr-FR\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.railscarma.com\/#organization\",\"name\":\"RailsCarma\",\"url\":\"https:\/\/www.railscarma.com\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"fr-FR\",\"@id\":\"https:\/\/www.railscarma.com\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.railscarma.com\/wp-content\/uploads\/2020\/08\/railscarma_logo.png\",\"contentUrl\":\"https:\/\/www.railscarma.com\/wp-content\/uploads\/2020\/08\/railscarma_logo.png\",\"width\":200,\"height\":46,\"caption\":\"RailsCarma\"},\"image\":{\"@id\":\"https:\/\/www.railscarma.com\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/RailsCarma\/\",\"https:\/\/x.com\/railscarma\",\"https:\/\/www.linkedin.com\/company\/railscarma\/\",\"https:\/\/myspace.com\/railscarma\",\"https:\/\/in.pinterest.com\/railscarma\/\",\"https:\/\/www.youtube.com\/channel\/UCx3Wil-aAnDARuatTEyMdpg\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.railscarma.com\/#\/schema\/person\/5f2228a2dec7549056e709de6eb85d21\",\"name\":\"admin\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"fr-FR\",\"@id\":\"https:\/\/www.railscarma.com\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/308867ca6c81f3aba146080c601000087180326f752c4116849ea9f514c6a4fa?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/308867ca6c81f3aba146080c601000087180326f752c4116849ea9f514c6a4fa?s=96&d=mm&r=g\",\"caption\":\"admin\"},\"sameAs\":[\"https:\/\/www.railscarma.com\/hire-ruby-on-rails-developer\/\"]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Pr\u00e9venir les probl\u00e8mes de s\u00e9curit\u00e9 dans Rails - RailsCarma - Ruby on Rails Development Company sp\u00e9cialis\u00e9e dans le d\u00e9veloppement offshore","description":"La s\u00e9curit\u00e9 est une pr\u00e9occupation majeure pour tout d\u00e9veloppeur aspirant \u00e0 un d\u00e9veloppement r\u00e9ussi et durable d\u2019applications web. Chaque d\u00e9veloppeur veut coder","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.railscarma.com\/fr\/blog\/articles-techniques\/prevenir-les-problemes-de-securite\/","og_locale":"fr_FR","og_type":"article","og_title":"Preventing security issues in Rails - RailsCarma - Ruby on Rails Development Company specializing in Offshore Development","og_description":"Security is a major concern for any developer aspiring for successful and sustainable development of web applications. Every developer wants to code in","og_url":"https:\/\/www.railscarma.com\/fr\/blog\/articles-techniques\/prevenir-les-problemes-de-securite\/","og_site_name":"RailsCarma - Ruby on Rails Development Company specializing in Offshore Development","article_publisher":"https:\/\/www.facebook.com\/RailsCarma\/","article_published_time":"2017-10-31T14:05:41+00:00","article_modified_time":"2022-09-06T09:26:04+00:00","og_image":[{"width":800,"height":300,"url":"https:\/\/www.railscarma.com\/wp-content\/uploads\/2017\/10\/Preventing-security-issues-in-Rails.jpg","type":"image\/jpeg"}],"author":"admin","twitter_card":"summary_large_image","twitter_creator":"@railscarma","twitter_site":"@railscarma","twitter_misc":{"\u00c9crit par":"admin","Dur\u00e9e de lecture estim\u00e9e":"9 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.railscarma.com\/blog\/technical-articles\/preventing-security-issues-rails\/#article","isPartOf":{"@id":"https:\/\/www.railscarma.com\/blog\/technical-articles\/preventing-security-issues-rails\/"},"author":{"name":"admin","@id":"https:\/\/www.railscarma.com\/#\/schema\/person\/5f2228a2dec7549056e709de6eb85d21"},"headline":"Preventing security issues in Rails","datePublished":"2017-10-31T14:05:41+00:00","dateModified":"2022-09-06T09:26:04+00:00","mainEntityOfPage":{"@id":"https:\/\/www.railscarma.com\/blog\/technical-articles\/preventing-security-issues-rails\/"},"wordCount":1668,"commentCount":0,"publisher":{"@id":"https:\/\/www.railscarma.com\/#organization"},"image":{"@id":"https:\/\/www.railscarma.com\/blog\/technical-articles\/preventing-security-issues-rails\/#primaryimage"},"thumbnailUrl":"https:\/\/www.railscarma.com\/wp-content\/uploads\/2017\/10\/Preventing-security-issues-in-Rails.jpg","keywords":["Ruby on rails"],"articleSection":["Technical Articles"],"inLanguage":"fr-FR","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.railscarma.com\/blog\/technical-articles\/preventing-security-issues-rails\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.railscarma.com\/blog\/technical-articles\/preventing-security-issues-rails\/","url":"https:\/\/www.railscarma.com\/blog\/technical-articles\/preventing-security-issues-rails\/","name":"Pr\u00e9venir les probl\u00e8mes de s\u00e9curit\u00e9 dans Rails - RailsCarma - Ruby on Rails Development Company sp\u00e9cialis\u00e9e dans le d\u00e9veloppement offshore","isPartOf":{"@id":"https:\/\/www.railscarma.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.railscarma.com\/blog\/technical-articles\/preventing-security-issues-rails\/#primaryimage"},"image":{"@id":"https:\/\/www.railscarma.com\/blog\/technical-articles\/preventing-security-issues-rails\/#primaryimage"},"thumbnailUrl":"https:\/\/www.railscarma.com\/wp-content\/uploads\/2017\/10\/Preventing-security-issues-in-Rails.jpg","datePublished":"2017-10-31T14:05:41+00:00","dateModified":"2022-09-06T09:26:04+00:00","description":"La s\u00e9curit\u00e9 est une pr\u00e9occupation majeure pour tout d\u00e9veloppeur aspirant \u00e0 un d\u00e9veloppement r\u00e9ussi et durable d\u2019applications web. Chaque d\u00e9veloppeur veut coder","breadcrumb":{"@id":"https:\/\/www.railscarma.com\/blog\/technical-articles\/preventing-security-issues-rails\/#breadcrumb"},"inLanguage":"fr-FR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.railscarma.com\/blog\/technical-articles\/preventing-security-issues-rails\/"]}]},{"@type":"ImageObject","inLanguage":"fr-FR","@id":"https:\/\/www.railscarma.com\/blog\/technical-articles\/preventing-security-issues-rails\/#primaryimage","url":"https:\/\/www.railscarma.com\/wp-content\/uploads\/2017\/10\/Preventing-security-issues-in-Rails.jpg","contentUrl":"https:\/\/www.railscarma.com\/wp-content\/uploads\/2017\/10\/Preventing-security-issues-in-Rails.jpg","width":800,"height":300},{"@type":"BreadcrumbList","@id":"https:\/\/www.railscarma.com\/blog\/technical-articles\/preventing-security-issues-rails\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.railscarma.com\/"},{"@type":"ListItem","position":2,"name":"Preventing security issues in Rails"}]},{"@type":"WebSite","@id":"https:\/\/www.railscarma.com\/#website","url":"https:\/\/www.railscarma.com\/","name":"RailsCarma - Soci\u00e9t\u00e9 de d\u00e9veloppement Ruby on Rails sp\u00e9cialis\u00e9e dans le d\u00e9veloppement offshore","description":"RailsCarma est une soci\u00e9t\u00e9 de d\u00e9veloppement Ruby on Rails \u00e0 Bangalore. Nous sommes sp\u00e9cialis\u00e9s dans le d\u00e9veloppement offshore Ruby on Rails, bas\u00e9s aux \u00c9tats-Unis et en Inde. Embauchez des d\u00e9veloppeurs Ruby on Rails exp\u00e9riment\u00e9s pour une exp\u00e9rience Web ultime.","publisher":{"@id":"https:\/\/www.railscarma.com\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.railscarma.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"fr-FR"},{"@type":"Organization","@id":"https:\/\/www.railscarma.com\/#organization","name":"RailsCarma","url":"https:\/\/www.railscarma.com\/","logo":{"@type":"ImageObject","inLanguage":"fr-FR","@id":"https:\/\/www.railscarma.com\/#\/schema\/logo\/image\/","url":"https:\/\/www.railscarma.com\/wp-content\/uploads\/2020\/08\/railscarma_logo.png","contentUrl":"https:\/\/www.railscarma.com\/wp-content\/uploads\/2020\/08\/railscarma_logo.png","width":200,"height":46,"caption":"RailsCarma"},"image":{"@id":"https:\/\/www.railscarma.com\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/RailsCarma\/","https:\/\/x.com\/railscarma","https:\/\/www.linkedin.com\/company\/railscarma\/","https:\/\/myspace.com\/railscarma","https:\/\/in.pinterest.com\/railscarma\/","https:\/\/www.youtube.com\/channel\/UCx3Wil-aAnDARuatTEyMdpg"]},{"@type":"Person","@id":"https:\/\/www.railscarma.com\/#\/schema\/person\/5f2228a2dec7549056e709de6eb85d21","name":"administrateur","image":{"@type":"ImageObject","inLanguage":"fr-FR","@id":"https:\/\/www.railscarma.com\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/308867ca6c81f3aba146080c601000087180326f752c4116849ea9f514c6a4fa?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/308867ca6c81f3aba146080c601000087180326f752c4116849ea9f514c6a4fa?s=96&d=mm&r=g","caption":"admin"},"sameAs":["https:\/\/www.railscarma.com\/hire-ruby-on-rails-developer\/"]}]}},"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/www.railscarma.com\/fr\/wp-json\/wp\/v2\/posts\/27233","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.railscarma.com\/fr\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.railscarma.com\/fr\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.railscarma.com\/fr\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.railscarma.com\/fr\/wp-json\/wp\/v2\/comments?post=27233"}],"version-history":[{"count":0,"href":"https:\/\/www.railscarma.com\/fr\/wp-json\/wp\/v2\/posts\/27233\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.railscarma.com\/fr\/wp-json\/wp\/v2\/media\/31715"}],"wp:attachment":[{"href":"https:\/\/www.railscarma.com\/fr\/wp-json\/wp\/v2\/media?parent=27233"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.railscarma.com\/fr\/wp-json\/wp\/v2\/categories?post=27233"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.railscarma.com\/fr\/wp-json\/wp\/v2\/tags?post=27233"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}