{"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":"prevenire-problemi-di-sicurezza-sui-binari","status":"publish","type":"post","link":"https:\/\/www.railscarma.com\/it\/blog\/articoli-tecnici\/prevenire-problemi-di-sicurezza-sui-binari\/","title":{"rendered":"Prevenire problemi di sicurezza in 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 sicurezza \u00e8 una delle principali preoccupazioni per qualsiasi sviluppatore che aspira allo sviluppo sostenibile e di successo delle applicazioni web. Ogni sviluppatore desidera codificare in modo tale che le proprie applicazioni siano il pi\u00f9 sicure possibile da qualsiasi attacco, tuttavia, nessun codice pu\u00f2 essere privo di bug o protetto. Pertanto, gli sviluppatori sono consapevoli che devono fare del loro meglio per rendere le loro applicazioni con la minima vulnerabilit\u00e0 agli attacchi. Rilevare le vulnerabilit\u00e0 \u00e8 semplice, ma le violazioni della sicurezza e gli attacchi hacker potrebbero comportare perdite. Questo \u00e8 il motivo per cui \u00e8 sempre meglio verificare la presenza di problemi di sicurezza fin dall&#039;inizio del processo di sviluppo dell&#039;applicazione, oltre a condurre controlli di qualit\u00e0 regolari per mantenere le cose sulla buona strada.<\/p><h3><strong>1] Sessioni<\/strong><\/h3><p>Un buon punto di partenza per valutare la sicurezza sono le sessioni, che possono essere vulnerabili a determinati attacchi.<\/p><pre><code>sessione[:user_id] = @current_user.id Utente.find(session[:user_id])<\/code><\/pre><p>\u2013 Per impostazione predefinita, Ruby on Rails utilizza un archivio di sessione basato su cookie. Ci\u00f2 implica che, a meno che non venga modificato qualcosa, la sessione non scadr\u00e0 sul server. Ci\u00f2 significa quindi che non dovremmo mai conservare dati sensibili come password, ID, ecc. nelle sessioni.<br \/>\u2013 La procedura migliore quindi \u00e8 lavorare con una sessione basata su database, il che \u00e8 molto semplice con Rails \u2013<\/p><p>Progetto::Application.config.session_store :active_record_store<br \/>L&#039;ID sessione \u00e8 una stringa esadecimale casuale di 32 caratteri.<\/p><p>L&#039;ID di sessione viene generato utilizzando SecureRandom.hex che genera una stringa esadecimale casuale utilizzando uno qualsiasi dei metodi specifici della piattaforma come OpenSSL, \/dev\/urandom o Win32, per generare numeri casuali crittograficamente sicuri. Attualmente non \u00e8 possibile effettuare attacchi di forza bruta, ovvero tentativi ed errori, sulle credenziali di accesso negli ID di sessione di Rails.<\/p><p>Ecco alcuni degli attacchi pi\u00f9 comuni basati sulla sessione:<br \/>Dirottamento della sessione: consente agli aggressori di rubare l&#039;ID di sessione di un utente e utilizzare l&#039;applicazione Web a nome della vittima.<br \/>Correzione della sessione: - Oltre a rubare l&#039;ID di sessione di un utente, l&#039;aggressore \u00e8 anche in grado di correggere un ID di sessione a lui noto. Questo \u00e8 chiamato fissazione della sessione.<br \/>Scadenza della sessione: - Gli aggressori tentano anche di aumentare la durata dell&#039;attacco con sessioni che non scadono mai. Gli attacchi come cross-site request forgery (CSRF), session hijacking e session fixation ne sono esempi.<\/p><h3><strong>2] Comando Iniezione<\/strong><\/h3><p>Un&#039;applicazione diventa vulnerabile al command injection nel caso in cui l&#039;aggressore sia in grado di influenzare i parametri della riga di comando o i comandi Unix nel loro complesso. Tuttavia, poich\u00e9 l&#039;esecuzione dei comandi UNIX in Rails non \u00e8 comune, \u00e8 meno probabile che questi attacchi abbiano luogo.<br \/>D&#039;altro canto, possono verificarsi vulnerabilit\u00e0 in un processo in background che utilizza direttamente i comandi Unix per i dati del cliente.<\/p><p>Ecco alcuni dei metodi comuni della riga di comando di Rails:<br \/>%x[\u2026]<br \/>sistema()<br \/>exec()<br \/>`&#8230;`<br \/>Va inoltre notato che esistono pi\u00f9 modi per concatenare i comandi, ma ci\u00f2 dipende anche dal sistema operativo host. Esempi: \u201c&amp;\u201d, \u201c&amp;&amp;\u201d, \u201c|\u201d, \u201c||\u201d eccetera.<br \/>Variabili di ambiente protette durante l&#039;esecuzione dei comandi<br \/>I processi eseguiti dalle tue applicazioni ferroviarie ottengono le variabili di ambiente dei processi principali che possono comprendere chiavi API, ecc.<\/p><h3><strong>3] Iniezione SQL<\/strong><\/h3><p>L&#039;SQL injection avviene quando un utente \u00e8 in grado di manipolare un valore che viene utilizzato in modo non sicuro all&#039;interno di una query SQL. Ci\u00f2 pu\u00f2 comportare perdita di dati, fughe di dati, privilegi elevati tra gli altri risultati indesiderati.<\/p><p>L&#039;SQL injection \u00e8 un attacco molto semplice e comune che di solito si verifica e il suo impatto pu\u00f2 essere molto grave a seconda del sito Web e della situazione in cui si verifica.<\/p><p>Come sviluppatori dovremmo occuparci di tutte quelle possibilit\u00e0 in cui pu\u00f2 verificarsi l&#039;iniezione SQL e dovremmo gestire le stesse di conseguenza.<\/p><p>Ecco come appare SQL Injection:<\/p><pre><code>Employee.all(:condizioni =&gt; &quot;designazione = #{params[:designazione]}&quot;)<\/code><\/pre><p>Il codice sopra riportato \u00e8 vulnerabile all&#039;SQL injection, il codice seguente impedir\u00e0 l&#039;SQL injection.<\/p><pre><code>Employee.all(:condizioni =&gt; [&#039;designazione = ?&#039;, params[:designazione]])<\/code><\/pre><p>O<\/p><pre><code>Employee.all(:conditions =&gt; {:designation =&gt; params[:designation]})<\/code><\/pre><h5><strong>Contromisure contro SQL Injection in Rails<\/strong><\/h5><p>Testare ogni istruzione per l&#039;iniezione SQL pu\u00f2 essere un lavoro noioso, ma dovremmo prendere alcune contromisure come uno scanner di codice statico come Brakeman e puoi scrivere alcuni casi di test unitari.<br \/><strong>a)Regola generale:<\/strong>\u2013 Non utilizzare mai i parametri nell&#039;inflessione delle stringhe (#{}) in questo modo<br \/>Per esempio<\/p><pre><code>User.where(&quot;nome = &#039;#{params[:nome]}&#039;&quot;)<\/code><\/pre><p><strong>b)Attenzione che params pu\u00f2 essere anche un array, ad esempio:<\/strong><\/p><p>params[:user] se aggiungi ?user[]=1 all&#039;URL. Utente.esiste? params[:utente] eseguir\u00e0 quindi la query SELECT 1 AS one FROM \u201cusers\u201d WHERE (1) LIMIT 1.<\/p><h3><strong>4] Scripting incrociato (XSS)<\/strong><\/h3><p>Con l&#039;aiuto di XSS, un utente malintenzionato pu\u00f2 eseguire script nel contesto di sicurezza della tua applicazione web.<\/p><p>Considera questo snippet di visualizzazione di Rails: &lt;%= @flat.title %&gt;. Se il titolo del flat viene modificato insieme all&#039;aggiunta dell&#039;HTML, questa vista di Rails esegue il rendering dell&#039;HTML nel contesto di sicurezza dell&#039;applicazione. Pertanto, il browser eseguir\u00e0 l&#039;HTML, che \u00e8 XSS.<\/p><p>In effetti, questo non funziona ancora in Rails al giorno d&#039;oggi, nella versione 2 di Rails ti verrebbe richiesto di eseguire l&#039;escape di ogni singolo input dell&#039;utente: &lt;%= h(@flat.title) %&gt;<br \/>Al giorno d&#039;oggi, rails viene fornito con un flag su ogni stringa che la contrassegna come HTML, sicura o meno: @flat.title.html_safe?. Nel caso in cui non sia sicuro (ad esempio da un parametro, dal database, ...), verr\u00e0 automaticamente escape mentre lo si utilizza in questo modo: &lt;%= @flat.title %&gt;<br \/>In Rails 3.0 la protezione contro XSS \u00e8 un comportamento predefinito.<\/p><h3><strong>Contromisure<\/strong><\/h3><p><strong>a) Una strategia di politica di sicurezza dei contenuti (CSP).<\/strong><\/p><p>Una sicurezza dei contenuti <a href=\"https:\/\/www.railscarma.com\/it\/gestione-dei-cookie\/\">Politica<\/a> \u00e8 fondamentalmente sotto forma di un&#039;intestazione HTTP e questo fa una dichiarazione delle regole su ci\u00f2 che tutte le fonti sono consentite per tutti i tipi di risorse. Come conseguenza del rispetto di queste regole, tutto il resto non \u00e8 consentito. Una volta implementato in modo appropriato, \u00e8 in grado di eliminare tutte le vulnerabilit\u00e0 Cross-Site-Scripting (XSS) nella tua app.<\/p><p><strong>b) HTML-Safe, ActiveSupport::SafeBuffer<\/strong><\/p><p>Il modulo ActiveSupport::SafeBuffer \u00e8 stato introdotto da Rails 3 per aggiungere un flag HTML-safe alle stringhe. Per impostazione predefinita, \u00e8 falso, soprattutto quando la stringa ha un&#039;origine esterna come il database o i parametri. Il flag viene restituito con &quot;string&quot;.html_safe?.<\/p><p>Il metodo di escape HTML h(), esegue l&#039;escape della stringa contrassegnando una stringa come sicura per HTML.<\/p><pre><code>h(&quot;html&gt;&quot;).html_safe? #=&gt; vero (&quot;html&gt;&quot;).html_safe? #=&gt;falso<\/code><\/pre><p><strong>c) Prevenzione XSS OWASP (Open Web Application Security Project).<\/strong><\/p><p>Per prevenire XSS, tutti i dati non attendibili devono essere negati e impedito di essere inseriti direttamente nell&#039;HTML o in qualsiasi altro contesto (come JavaScript, CSS, contesti di attributi).<\/p><p><strong>d) Protezione XSS nei templi HAML<\/strong><\/p><p>Durante l&#039;utilizzo dei modelli Haml, anzich\u00e9 ERB, le stringhe vengono automaticamente sottoposte a escape allo stesso modo dei modelli ERB. E allo stesso modo dei modelli ERB, le stringhe sicure per HTML (string.html_safe? restituisce true) non vengono saltate automaticamente. La notazione != in Haml funziona nello stesso modo in cui &lt;%= raw(\u2026) %&gt; funziona in ERB, quindi rende la versione senza escape.<br \/>Per impostazione predefinita,<\/p><pre><code>=&quot; <em>sottolineato <em>&quot; != &quot; <em>sottolineato <em>&quot;<\/em><\/em><\/em><\/em><\/code><\/pre><p>compila in:<\/p><pre><code><em>sottolineato<\/em> <em>sottolineato<\/em><\/code><\/pre><p>Quindi \u00e8 necessario prestare attenzione durante l&#039;utilizzo di != in Haml e assicurarsi che nessun dato utente venga reso senza caratteri di escape.<br \/>Di seguito sono riportate alcune misure preventive che possono essere prese in considerazione durante lo sviluppo dell&#039;applicazione ferroviaria.<\/p><h5><strong>1] Autenticazione<\/strong><\/h5><p>Utilizza il dispositivo o la gemma Authlogic.<br \/>\u2013 Per abilitare l&#039;autenticazione, non dimenticare di aggiungere -&gt;<\/p><p>classe ProjectController &lt;ApplicationController<br \/>prima_filtro:authenticate_user<br \/>\u2013 Per impostazione predefinita Devise richiede solo 6 caratteri per una password. Il minimo pu\u00f2 essere modificato in: \/config\/initializers\/devise.rb<br \/>config.password_length = 8..128<br \/>\u2013 \u00c8 possibile modificare la complessit\u00e0 della password aggiungendo il seguente codice nel modello utente.<\/p><pre><code>convalidare: complessit\u00e0_password def complessit\u00e0_password if password.present? e non password.match(\/\\A(?=.*[az])(?=.*[AZ])(?=.*\\d).+\\z\/) errori.add :password, &quot;deve includere almeno una lettera minuscola, una lettera maiuscola e una cifra&quot; end end<\/code><\/pre><h5><strong>2] Riferimento diretto a oggetti non sicuri o navigazione forzata<\/strong><\/h5><p>\u2013 Le app Ruby on Rails utilizzano una struttura URL riposante che rende i percorsi utilizzati per lo pi\u00f9 indovinabili e intuitivi. Pertanto, per proteggersi da un utente che tenta di accedere o modificare i dati che appartengono a un altro utente, le azioni devono essere controllate in modo specifico. Non esiste un tipo di protezione integrato di questo tipo su un&#039;applicazione Rails vanilla. Inoltre, pu\u00f2 essere eseguita manualmente a livello di controller.<br \/>\u2013 Utilizzare cancancan o pandit per il controllo degli accessi<\/p><h5><strong>3] Assegnazione di massa e parametri forti<\/strong><\/h5><pre><code>- class Project &lt; ActiveRecord::Base attr_accessible :name, :admin end<\/code><\/pre><p>Secondo l&#039;esempio sopra, con l&#039;attributo admin accessibile, potrebbe funzionare quanto segue:<br \/>\u2013 curl -d \u201cprogetto[nome]=triage&amp;progetto[admin]=1\u201d host:porta\/progetti<br \/>\u2013 config.active_record.whitelist_attributes = true<\/p><h5><strong>4] Reindirizzamenti e inoltri<\/strong><\/h5><p>\u2013 Si consiglia di evitare di utilizzare i reindirizzamenti che utilizzano parametri<br \/>Ad esempio:- \/\/www.example.com\/redirect?url=\/\/www.example_commerce_site.com\/checkout<br \/>\u2013 la protezione restrittiva consiste nell&#039;utilizzare :only_path<\/p><pre><code>inizio se percorso = URI.parse(params[:url]).percorso reindirizzamento_al percorso fine salvataggio URI::InvalidURIError reindirizzamento_a &#039;\/&#039; fine<\/code><\/pre><p>\u2013 Avere hash dei siti approvati e consentire solo a loro di essere reindirizzati.<\/p><h5><strong>5] Percorsi di rendering dinamici<\/strong><\/h5><p>\u2013 \u00c8 necessario prestare attenzione quando si esegue il rendering dinamico di qualsiasi vista in base a determinate condizioni. Potrebbe comportare il caricamento della vista amministratore.<\/p><h5><strong>6] Condivisione delle risorse tra origini<\/strong><\/h5><p>\u2013 Come il caricamento di file.<br \/>\u2013 Il sito ricevente dovrebbe limitare e consentire solo i domini autorizzati e assicurarsi che le richieste provengano solo da tali domini.<br \/>\u2013 Imposta anche l&#039;intestazione Access-Control-Allow-Origin sia nella risposta alla richiesta OPTIONS che alla richiesta POST. Questo perch\u00e9 la richiesta OPTIONS viene inviata per prima, per determinare se il sito remoto o ricevente consente il dominio richiedente.<br \/>\u2013 Viene inviata una richiesta POST. Ancora una volta, l&#039;intestazione deve essere impostata affinch\u00e9 la transazione venga visualizzata come avvenuta con successo.<\/p><h5><strong>7] Bug della logica aziendale<\/strong><\/h5><p>\u2013 Le applicazioni, indipendentemente dalla tecnologia su cui si basano, possono contenere errori di logica aziendale che possono portare a bug di sicurezza. Pu\u00f2 essere davvero complicato rilevare tali bug di sicurezza utilizzando gli strumenti automatizzati. Pratiche come revisioni regolari dei codici, programmazione in coppia e scrittura di test unitari possono aiutarti a evitare che si verifichino tali bug di sicurezza.<\/p><h5><strong>8] File sensibili<\/strong><\/h5><p>Di seguito sono riportati alcuni file di cui dovremmo occuparci durante lo sviluppo di un&#039;applicazione web.<br \/>\/config\/database.yml- Pu\u00f2 contenere credenziali di produzione.<br \/>\/config\/initializers\/secret_token.rb \u2013 Contiene un segreto utilizzato per eseguire l&#039;hash del cookie di sessione.<br \/>\/db\/seeds.rb \u2013 Pu\u00f2 contenere dati seed incluso l&#039;utente amministratore bootstrap.<br \/>\/db\/development.sqlite3 \u2013 Pu\u00f2 contenere dati reali.<\/p><h5><strong>9] Crittografia<\/strong><\/h5><p>Ruby on Rails utilizza la crittografia del sistema operativo. Non dovresti quasi mai scrivere le tue soluzioni per la crittografia.<br \/>Aggiornamento dei binari e disponibilit\u00e0 di un processo per l&#039;aggiornamento delle dipendenze.<\/p><h4><strong>Strumenti per rilevare problemi di sicurezza nelle applicazioni ferroviarie<\/strong><\/h4><ul><li>Frenatore<\/li><li>audit del bundler<\/li><li>Coda in codice::Alba<\/li><li>Rack::Attacco<\/li><li>Tarantola<\/li><li>Cintura degli attrezzi 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\">Iscriviti per gli ultimi aggiornamenti<\/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=\"caricatore\"><\/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=\"Indirizzo 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=\"Nome\">\r\n<\/p>\r\n<p>\r\n    <input type=\"submit\" id=\"invisible\" class=\"sib-default-btn\" value=\"sottoscrivi\">\r\n<\/p>\t\t\t\t<\/div>\n\t\t\t<input type=\"hidden\" name=\"trp-form-language\" value=\"it\"\/><\/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\">Articoli correlati<\/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=\"Gemma Kaminari\" href=\"https:\/\/www.railscarma.com\/it\/blog\/articoli-tecnici\/gemma-di-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=\"gemma di 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=\"Gemma Kaminari\" href=\"https:\/\/www.railscarma.com\/it\/blog\/articoli-tecnici\/gemma-di-kaminari\/?related_post_from=37277\">\r\n        Gemma Kaminari  <\/a>\r\n\r\n        <\/div>\r\n              <div class=\"item\">\r\n            <div class=\"thumb post_thumb\">\r\n    <a  title=\"Perch\u00e9 assumere sviluppatori Ruby on Rails nel 2026?\" href=\"https:\/\/www.railscarma.com\/it\/blog\/roro\/perche-assumere-sviluppatori-di-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=\"perch\u00e9 assumere sviluppatori di Ruby on Rails nel 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=\"Perch\u00e9 assumere sviluppatori Ruby on Rails nel 2026?\" href=\"https:\/\/www.railscarma.com\/it\/blog\/roro\/perche-assumere-sviluppatori-di-ruby-on-rails\/?related_post_from=30627\">\r\n        Perch\u00e9 assumere sviluppatori Ruby on Rails nel 2026?  <\/a>\r\n\r\n        <\/div>\r\n              <div class=\"item\">\r\n            <div class=\"thumb post_thumb\">\r\n    <a  title=\"Scraping dei dati nelle rotaie mediante elaborazione CSV\" href=\"https:\/\/www.railscarma.com\/it\/blog\/articoli-tecnici\/raschiamento-dei-dati-nei-binari-mediante-lelaborazione-di-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=\"Scraping dei dati nelle rotaie mediante elaborazione CSV\" href=\"https:\/\/www.railscarma.com\/it\/blog\/articoli-tecnici\/raschiamento-dei-dati-nei-binari-mediante-lelaborazione-di-csv\/?related_post_from=31591\">\r\n        Scraping dei dati nelle rotaie mediante elaborazione CSV  <\/a>\r\n\r\n        <\/div>\r\n              <div class=\"item\">\r\n            <div class=\"thumb post_thumb\">\r\n    <a  title=\"Effettua chiamate vocali tramite le applicazioni Web Ruby on Rails\" href=\"https:\/\/www.railscarma.com\/it\/blog\/articoli-tecnici\/effettuare-chiamate-vocali-tramite-le-applicazioni-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=\"Effettua chiamate vocali tramite le applicazioni Web Ruby on Rails\" href=\"https:\/\/www.railscarma.com\/it\/blog\/articoli-tecnici\/effettuare-chiamate-vocali-tramite-le-applicazioni-web-ruby-on-rails\/?related_post_from=31309\">\r\n        Effettua chiamate vocali tramite le applicazioni 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>La sicurezza \u00e8 una delle principali preoccupazioni per qualsiasi sviluppatore che aspira allo sviluppo sostenibile e di successo delle applicazioni web. Ogni sviluppatore desidera codificare in modo tale che le proprie applicazioni siano il pi\u00f9 sicure possibile da qualsiasi attacco, tuttavia, nessun codice pu\u00f2 essere privo di bug o protetto. Quindi, gli sviluppatori sono consapevoli di dover...<\/p>\n<p class=\"read-more\"> <a class=\"\" href=\"https:\/\/www.railscarma.com\/it\/blog\/third-party-api-integration-solutions-in-ruby-on-rails\/\"> <span class=\"screen-reader-text\">Soluzioni di integrazione API di terze parti in Ruby on Rails<\/span> Leggi altro \"<\/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\/it\/blog\/articoli-tecnici\/prevenire-problemi-di-sicurezza-sui-binari\/\" \/>\n<meta property=\"og:locale\" content=\"it_IT\" \/>\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\/it\/blog\/articoli-tecnici\/prevenire-problemi-di-sicurezza-sui-binari\/\" \/>\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=\"Scritto da\" \/>\n\t<meta name=\"twitter:data1\" content=\"admin\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tempo di lettura stimato\" \/>\n\t<meta name=\"twitter:data2\" content=\"9 minuti\" \/>\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\":\"it-IT\",\"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\":\"it-IT\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.railscarma.com\/blog\/technical-articles\/preventing-security-issues-rails\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"it-IT\",\"@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\":\"it-IT\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.railscarma.com\/#organization\",\"name\":\"RailsCarma\",\"url\":\"https:\/\/www.railscarma.com\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"it-IT\",\"@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\":\"it-IT\",\"@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":"Prevenzione dei problemi di sicurezza nelle ferrovie - RailsCarma - Ruby on Rails Development Company specializzata nello sviluppo offshore","description":"La sicurezza \u00e8 una delle principali preoccupazioni per qualsiasi sviluppatore che aspira allo sviluppo sostenibile e di successo delle applicazioni web. Ogni sviluppatore vuole codificare","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\/it\/blog\/articoli-tecnici\/prevenire-problemi-di-sicurezza-sui-binari\/","og_locale":"it_IT","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\/it\/blog\/articoli-tecnici\/prevenire-problemi-di-sicurezza-sui-binari\/","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":{"Scritto da":"admin","Tempo di lettura stimato":"9 minuti"},"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":"it-IT","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":"Prevenzione dei problemi di sicurezza nelle ferrovie - RailsCarma - Ruby on Rails Development Company specializzata nello sviluppo 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 sicurezza \u00e8 una delle principali preoccupazioni per qualsiasi sviluppatore che aspira allo sviluppo sostenibile e di successo delle applicazioni web. Ogni sviluppatore vuole codificare","breadcrumb":{"@id":"https:\/\/www.railscarma.com\/blog\/technical-articles\/preventing-security-issues-rails\/#breadcrumb"},"inLanguage":"it-IT","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.railscarma.com\/blog\/technical-articles\/preventing-security-issues-rails\/"]}]},{"@type":"ImageObject","inLanguage":"it-IT","@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 - Societ\u00e0 di sviluppo Ruby on Rails specializzata nello sviluppo offshore","description":"RailsCarma \u00e8 una societ\u00e0 di sviluppo Ruby on Rails a Bangalore. Siamo specializzati nello sviluppo offshore di Ruby on Rails con sede negli Stati Uniti e in India. Assumi sviluppatori esperti di Ruby on Rails per la migliore esperienza Web.","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":"it-IT"},{"@type":"Organization","@id":"https:\/\/www.railscarma.com\/#organization","name":"RailsCarma","url":"https:\/\/www.railscarma.com\/","logo":{"@type":"ImageObject","inLanguage":"it-IT","@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":"amministratore","image":{"@type":"ImageObject","inLanguage":"it-IT","@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\/it\/wp-json\/wp\/v2\/posts\/27233","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.railscarma.com\/it\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.railscarma.com\/it\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.railscarma.com\/it\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.railscarma.com\/it\/wp-json\/wp\/v2\/comments?post=27233"}],"version-history":[{"count":0,"href":"https:\/\/www.railscarma.com\/it\/wp-json\/wp\/v2\/posts\/27233\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.railscarma.com\/it\/wp-json\/wp\/v2\/media\/31715"}],"wp:attachment":[{"href":"https:\/\/www.railscarma.com\/it\/wp-json\/wp\/v2\/media?parent=27233"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.railscarma.com\/it\/wp-json\/wp\/v2\/categories?post=27233"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.railscarma.com\/it\/wp-json\/wp\/v2\/tags?post=27233"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}