{"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":"vermeidung-von-sicherheitsproblemen-schienen","status":"publish","type":"post","link":"https:\/\/www.railscarma.com\/de\/blog\/fachartikel\/vermeidung-von-sicherheitsproblemen-schienen\/","title":{"rendered":"Verhinderung von Sicherheitsproblemen 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>Sicherheit ist ein Hauptanliegen f\u00fcr jeden Entwickler, der eine erfolgreiche und nachhaltige Entwicklung von Webanwendungen anstrebt. Jeder Entwickler m\u00f6chte so programmieren, dass seine Anwendungen so sicher wie m\u00f6glich vor Angriffen sind. Allerdings kann kein Code 100% fehlerfrei oder sicher sein. Die Entwickler sind sich also bewusst, dass sie ihr Bestes tun m\u00fcssen, um ihre Anwendungen so wenig anf\u00e4llig wie m\u00f6glich f\u00fcr Angriffe zu machen. Das Aufsp\u00fcren von Schwachstellen ist einfach, aber Sicherheitsverletzungen und Hacks k\u00f6nnen zu Verlusten f\u00fchren. Aus diesem Grund ist es immer besser, bereits zu Beginn der Anwendungsentwicklung nach Sicherheitsproblemen zu suchen und regelm\u00e4\u00dfige Qualit\u00e4tskontrollen durchzuf\u00fchren, um die Dinge auf Kurs zu halten.<\/p><h3><strong>1] Sitzungen<\/strong><\/h3><p>Ein guter Ausgangspunkt f\u00fcr die Bewertung der Sicherheit sind die Sitzungen, die f\u00fcr bestimmte Angriffe anf\u00e4llig sein k\u00f6nnen.<\/p><pre><code>session[:user_id] = @current_user.id\nUser.find(session[:user_id])<\/code><\/pre><p>- Ruby on Rails verwendet standardm\u00e4\u00dfig einen Cookie-basierten Sitzungsspeicher. Dies bedeutet, dass die Sitzung auf dem Server nicht abl\u00e4uft, solange nichts ge\u00e4ndert wird. Das bedeutet, dass wir niemals sensible Daten wie Passw\u00f6rter, IDs usw. in Sessions speichern sollten.<br \/>- Die beste Vorgehensweise ist daher, mit einer datenbankbasierten Session zu arbeiten, was mit Rails sehr einfach ist -<\/p><p>Projekt::Application.config.session_store :active_record_store<br \/>Die Sitzungs-ID ist eine 32-stellige zuf\u00e4llige hexadezimale Zeichenfolge.<\/p><p>Die Sitzungs-ID wird mit SecureRandom.hex generiert, das eine zuf\u00e4llige hexadezimale Zeichenkette mit einer der plattformspezifischen Methoden wie OpenSSL, \/dev\/urandom oder Win32 zur Erzeugung kryptografisch sicherer Zufallszahlen erzeugt. Derzeit ist es nicht m\u00f6glich, einen Brute-Force-Angriff, d. h. einen Angriff durch Ausprobieren, auf die Anmeldedaten in den Sitzungskennungen von Rails durchzuf\u00fchren.<\/p><p>Hier sind einige der h\u00e4ufigsten sitzungsbasierten Angriffe:<br \/>Session Hijacking:- Dies erm\u00f6glicht es den Angreifern, die Sitzungs-ID eines Benutzers zu stehlen und die Webanwendung im Namen des Opfers zu verwenden.<br \/>Sitzungsfixierung: Neben dem Diebstahl der Sitzungs-ID eines Benutzers ist der Angreifer auch in der Lage, eine ihm bekannte Sitzungs-ID zu fixieren. Dies wird als Sitzungsfixierung bezeichnet.<br \/>Sitzungsablauf: Die Angreifer versuchen, den Zeitrahmen des Angriffs mit Sitzungen, die nie ablaufen, zu verl\u00e4ngern. Beispiele f\u00fcr solche Angriffe sind Cross-Site Request Forgery (CSRF), Session Hijacking und Session Fixation.<\/p><h3><strong>2] Befehlsinjektion<\/strong><\/h3><p>Eine Anwendung wird anf\u00e4llig f\u00fcr Befehlsinjektion, wenn der Angreifer in der Lage ist, die Befehlszeilenparameter oder die Unix-Befehle als Ganzes zu beeinflussen. Da die Ausf\u00fchrung von UNIX-Befehlen in Rails jedoch nicht \u00fcblich ist, sind diese Angriffe weniger wahrscheinlich.<br \/>Andererseits k\u00f6nnen Schwachstellen in einem Hintergrundprozess entstehen, der die Unix-Befehle f\u00fcr die Kundendaten direkt nutzt.<\/p><p>Hier sind einige der \u00fcblichen Rails-Befehlszeilenmethoden:<br \/>%x[...]<br \/>system()<br \/>exec()<br \/>`&#8230;`<br \/>Es sollte auch beachtet werden, dass es mehr als eine M\u00f6glichkeit gibt, Befehle aneinander zu ketten, aber das h\u00e4ngt auch vom Host-Betriebssystem ab. Beispiele: \"&amp;\", \"&amp;&amp;\", \"|\", \"||\" usw.<br \/>Gesicherte Umgebungsvariablen bei der Ausf\u00fchrung von Befehlen<br \/>Die Prozesse, die von Ihren Rails-Anwendungen ausgef\u00fchrt werden, erhalten die Umgebungsvariablen der \u00fcbergeordneten Prozesse, zu denen auch die API-Schl\u00fcssel usw. geh\u00f6ren k\u00f6nnen.<\/p><h3><strong>3] SQL-Einschleusung<\/strong><\/h3><p>Eine SQL-Injektion liegt vor, wenn ein Benutzer in der Lage ist, einen Wert zu manipulieren, der auf unsichere Weise in einer SQL-Abfrage verwendet wird. Dies kann zu Datenverlust, Datenlecks, erh\u00f6hten Rechten und anderen unerw\u00fcnschten Ergebnissen f\u00fchren.<\/p><p>SQL-Injection ist ein sehr einfacher und weit verbreiteter Angriff, der in der Regel auftritt und dessen Auswirkungen je nach Website und Situation, in der er auftritt, sehr schwerwiegend sein k\u00f6nnen.<\/p><p>Als Entwickler sollten wir uns um all die M\u00f6glichkeiten k\u00fcmmern, bei denen SQL-Injection auftreten kann, und diese entsprechend behandeln.<\/p><p>So sieht eine SQL-Injection aus:<\/p><pre><code>Employee.all(:conditions =&gt; \"Bezeichnung = #{params[:Bezeichnung]}\")<\/code><\/pre><p>Der obige Code ist anf\u00e4llig f\u00fcr SQL-Injektion, der folgende Code verhindert die SQL-Injektion.<\/p><pre><code>Employee.all(:conditions =&gt; ['Bezeichnung = ?', params[:Bezeichnung]])<\/code><\/pre><p>ODER<\/p><pre><code>Employee.all(:conditions =&gt; {:designation =&gt; params[:designation]})<\/code><\/pre><h5><strong>Gegenma\u00dfnahmen gegen SQL Injection in Rails<\/strong><\/h5><p>Das Testen jeder Anweisung auf SQL-Injection kann eine m\u00fchsame Arbeit sein, aber wir sollten einige Gegenma\u00dfnahmen ergreifen, wie statische Code-Scanner wie Brakeman und Sie k\u00f6nnen einige Unit-Testf\u00e4lle schreiben.<br \/><strong>a) Allgemeine Regel:<\/strong>- Verwenden Sie niemals Parameter in der Stringbeugung (#{}) wie folgt<br \/>Zum Beispiel<\/p><pre><code>User.where(\"Name = '#{params[:name]}'\")<\/code><\/pre><p><strong>b)Achten Sie darauf, dass params z.B. auch ein Array sein kann:<\/strong><\/p><p>params[:user], wenn Sie ?user[]=1 zur URL hinzuf\u00fcgen. User.exists? params[:user] wird dann die Abfrage SELECT 1 AS one FROM \"users\" WHERE (1) LIMIT 1 ausf\u00fchren.<\/p><h3><strong>4] Cross-Site-Scripting (XSS)<\/strong><\/h3><p>Mit Hilfe von XSS wird ein Angreifer in die Lage versetzt, Skripte im Sicherheitskontext Ihrer Webanwendung auszuf\u00fchren.<\/p><p>Betrachten Sie dieses Rails-View-Snippet: . Wenn der Titel des Flats zusammen mit dem Hinzuf\u00fcgen des HTMLs bearbeitet wird, rendert dieser Rails-View diesen HTML-Code im Sicherheitskontext der Anwendung. Somit w\u00fcrde der Browser den HTML-Code ausf\u00fchren, was ein XSS darstellt.<\/p><p>In der Tat funktioniert das in Rails heutzutage noch nicht, in Rails Version 2 m\u00fcsste man jede einzelne Benutzereingabe mit einem Escape versehen:<br \/>Heutzutage wird in Rails jeder String mit einem Flag versehen, das ihn als HTML markiert, egal ob er sicher ist oder nicht: @flat.title.html_safe?. Falls er nicht sicher ist (z.B. von einem Parameter, aus der Datenbank, ...), wird er automatisch escaped, wenn man ihn auf diese Weise verwendet:<br \/>In Rails 3.0 ist der Schutz gegen XSS ein Standardverhalten.<\/p><h3><strong>Gegenma\u00dfnahmen<\/strong><\/h3><p><strong>a) Eine Strategie der Inhaltssicherheit (CSP)<\/strong><\/p><p>A Inhaltliche Sicherheit <a href=\"https:\/\/www.railscarma.com\/de\/cookie-richtlinie\/\">Politik<\/a> hat im Grunde die Form eines HTTP-Headers, in dem die Regeln f\u00fcr alle zul\u00e4ssigen Quellen f\u00fcr alle Arten von Assets festgelegt sind. Die Befolgung dieser Regeln hat zur Folge, dass alles andere nicht erlaubt ist. Einmal richtig implementiert, k\u00f6nnen damit alle Cross-Site-Scripting (XSS)-Schwachstellen in Ihrer Anwendung beseitigt werden.<\/p><p><strong>b) HTML-Safe,ActiveSupport::SafeBuffer<\/strong><\/p><p>Das Modul ActiveSupport::SafeBuffer wurde mit Rails 3 eingef\u00fchrt, um ein HTML-sicheres Flag zu Strings hinzuzuf\u00fcgen. Standardm\u00e4\u00dfig ist es false, vor allem, wenn der String eine externe Quelle wie die Datenbank oder die Params hat. Das Flag wird mit \"string\".html_safe? zur\u00fcckgegeben.<\/p><p>Die HTML-escape-Methode h(), die eine Zeichenkette als HTML-sicher kennzeichnet, maskiert die Zeichenkette.<\/p><pre><code>h(\"html&gt;\").html_safe? #=&gt; true\n(\"html&gt;\").html_safe? #=&gt;false<\/code><\/pre><p><strong>c) OWASP (Open Web Application Security Project) XSS-Pr\u00e4vention<\/strong><\/p><p>Zur Verhinderung von XSS m\u00fcssen alle nicht vertrauensw\u00fcrdigen Daten verweigert und daran gehindert werden, direkt in den HTML-Code oder einen anderen Kontext (wie JavaScript, CSS, Attributkontexte) eingef\u00fcgt zu werden.<\/p><p><strong>d) XSS-Schutz in HAML-Templates<\/strong><\/p><p>Bei Verwendung der Haml-Vorlagen anstelle der ERB-Vorlagen werden Strings automatisch auf die gleiche Weise wie in ERB-Vorlagen escaped. Und genau wie bei den ERB-Vorlagen werden HTML-sichere Zeichenketten (string.html_safe? liefert true) nicht automatisch \u00fcbersprungen. Die != Notation in Haml funktioniert so wie  in ERB, d.h. es wird die unescapte Version gerendert.<br \/>Standardm\u00e4\u00dfig,<\/p><pre><code>=\"<em>betont<em>\"\n!= \"<em>Hervorgehoben<em>\"<\/em><\/em><\/em><\/em><\/em><\/code><\/pre><p>kompiliert zu:<\/p><pre><code><em>Hervorgehoben<\/em>\n<em>Hervorgehoben<\/em><\/code><\/pre><p>Daher ist bei der Verwendung von != in Haml Vorsicht geboten, und es sollte sichergestellt werden, dass keine Benutzerdaten unescaped wiedergegeben werden.<br \/>Nachfolgend sind einige vorbeugende Ma\u00dfnahmen aufgef\u00fchrt, die bei der Entwicklung von Schienenanwendungen beachtet werden k\u00f6nnen.<\/p><h5><strong>1] Authentifizierung<\/strong><\/h5><p>Verwenden Sie Device oder Authlogic gem.<br \/>- Um die Autorisierung zu aktivieren, vergessen Sie bitte nicht, -&gt; hinzuzuf\u00fcgen.<\/p><p>Klasse ProjectController &lt; ApplicationController<br \/>vor_filter :authenticate_user<br \/>- Standardm\u00e4\u00dfig verlangt Devise nur 6 Zeichen f\u00fcr ein Passwort. Das Minimum kann in: \/config\/initializers\/devise.rb<br \/>config.password_length = 8..128<br \/>- Sie k\u00f6nnen die Passwortkomplexit\u00e4t \u00e4ndern, indem Sie den folgenden Code in das Benutzermodell einf\u00fcgen.<\/p><pre><code>validieren :passwort_komplexit\u00e4t\ndef passwort_komplexit\u00e4t\nif password.present? and not password.match(\/\\A(?=.*[a-z])(?=.*[A-Z])(?=.*\\d).+\\z\/)\nerrors.add :password, \"muss mindestens einen Kleinbuchstaben, einen Gro\u00dfbuchstaben und eine Ziffer enthalten\"\nend\nend<\/code><\/pre><h5><strong>2] Unsichere direkte Objektreferenz oder erzwungenes Browsing<\/strong><\/h5><p>- Ruby on Rails-Anwendungen verwenden eine Restful-URL-Struktur, so dass die verwendeten Pfade meist erraten werden k\u00f6nnen und intuitiv sind. Um also zu verhindern, dass ein Benutzer versucht, auf Daten zuzugreifen oder diese zu \u00e4ndern, die einem anderen Benutzer geh\u00f6ren, m\u00fcssen die Aktionen speziell kontrolliert werden. In einer Vanilla-Rails-Anwendung gibt es von vornherein keinen solchen eingebauten Schutz. Au\u00dferdem kann er manuell auf der Controller-Ebene durchgef\u00fchrt werden.<br \/>- Cancancan oder Pandit f\u00fcr die Zugangskontrolle verwenden<\/p><h5><strong>3] Massenzuordnung und starke Parameter<\/strong><\/h5><pre><code>- Klasse Projekt &lt; ActiveRecord::Base\nattr_accessible :name, :admin\nend<\/code><\/pre><p>Nach dem obigen Beispiel, bei dem das Attribut admin zug\u00e4nglich ist, k\u00f6nnte Folgendes funktionieren:<br \/>- curl -d \"project[name]=triage&amp;project[admin]=1\" host:port\/projects<br \/>- config.active_record.whitelist_attributes = true<\/p><h5><strong>4] Umleitungen und Weiterleitungen<\/strong><\/h5><p>- Es ist ratsam, Umleitungen zu vermeiden, die Parameter verwenden<br \/>Zum Beispiel:- \/\/www.example.com\/redirect?url=\/\/www.example_commerce_site.com\/checkout<br \/>- restriktiver Schutz ist die Verwendung der Option :only_path<\/p><pre><code>beginnen\nif path = URI.parse(params[:url]).path\nredirect_to Pfad\nend\nrescue URI::InvalidURIError\nredirect_to '\/'\nend<\/code><\/pre><p>- Verf\u00fcgen Sie \u00fcber eine Hash-Datei mit genehmigten Websites und erlauben Sie nur diesen, weitergeleitet zu werden.<\/p><h5><strong>5] Dynamische Renderpfade<\/strong><\/h5><p>- Vorsicht ist geboten, wenn Sie eine Ansicht basierend auf einer Bedingung dynamisch rendern. Dies k\u00f6nnte dazu f\u00fchren, dass die Admin-Ansicht geladen wird.<\/p><h5><strong>6] Ursprungs\u00fcbergreifende Ressourcennutzung<\/strong><\/h5><p>- Wie Datei-Upload.<br \/>- Die empfangende Website sollte nur Dom\u00e4nen auf der Whitelist zulassen und sicherstellen, dass die Anfragen auch nur von diesen Dom\u00e4nen kommen.<br \/>- Setzen Sie au\u00dferdem den Access-Control-Allow-Origin-Header sowohl in der Antwort auf die OPTIONS-Anfrage als auch auf die POST-Anfrage. Dies liegt daran, dass die OPTIONS-Anforderung zuerst gesendet wird, um festzustellen, ob die entfernte oder empfangende Site die anfragende Dom\u00e4ne zul\u00e4sst.<br \/>- Es wird eine POST-Anfrage gesendet. Auch hier muss die Kopfzeile gesetzt werden, damit die Transaktion als erfolgreich angezeigt wird.<\/p><h5><strong>7] Fehler in der Gesch\u00e4ftslogik<\/strong><\/h5><p>- Die Anwendungen k\u00f6nnen unabh\u00e4ngig von der Technologie, auf der sie basieren, Fehler in der Gesch\u00e4ftslogik enthalten, die zu Sicherheitsl\u00fccken f\u00fchren k\u00f6nnen. Es kann sehr schwierig sein, solche Sicherheitsprobleme mit automatisierten Tools zu erkennen. Praktiken wie die regelm\u00e4\u00dfige \u00dcberpr\u00fcfung des Codes, Pair Programming und das Schreiben von Unit-Tests k\u00f6nnen Ihnen helfen, das Auftreten solcher Sicherheitsprobleme zu vermeiden.<\/p><h5><strong>8] Sensible Dateien<\/strong><\/h5><p>Im Folgenden sind einige Dateien aufgef\u00fchrt, auf die wir bei der Entwicklung einer Webanwendung achten sollten.<br \/>\/config\/database.yml- Kann Produktionsanmeldedaten enthalten.<br \/>\/config\/initializers\/secret_token.rb - Enth\u00e4lt ein Geheimnis, das zum Hashing des Sitzungscookies verwendet wird.<br \/>\/db\/seeds.rb - Kann Seed-Daten enthalten, einschlie\u00dflich des Bootstrap-Admin-Benutzers.<br \/>\/db\/development.sqlite3 - Kann echte Daten enthalten.<\/p><h5><strong>9] Verschl\u00fcsselung<\/strong><\/h5><p>Ruby on Rails verwendet OS-Verschl\u00fcsselung. Sie sollten fast nie Ihre eigenen L\u00f6sungen f\u00fcr die Verschl\u00fcsselung schreiben.<br \/>Rails aktualisieren und einen Prozess f\u00fcr die Aktualisierung von Abh\u00e4ngigkeiten haben.<\/p><h4><strong>Tools zur Erkennung von Sicherheitsproblemen in Schienenanwendungen<\/strong><\/h4><ul><li>Bremser<\/li><li>bundler-audit<\/li><li>Codesake::Morgend\u00e4mmerung<\/li><li>Gestell::Attacke<\/li><li>Vogelspinne<\/li><li>Hakiri Werkzeugg\u00fcrtel<\/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\">Abonnieren Sie die neuesten Updates<\/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=\"Lader\"><\/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=\"E-Mail-Adresse\">\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=\"Name\">\r\n<\/p>\r\n<p>\r\n    <input type=\"submit\" id=\"invisible\" class=\"sib-default-btn\" value=\"Abonnieren\">\r\n<\/p>\t\t\t\t<\/div>\n\t\t\t<input type=\"hidden\" name=\"trp-form-language\" value=\"de\"\/><\/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\">zusammenh\u00e4ngende Posts<\/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=\"Kaminari-Juwel\" href=\"https:\/\/www.railscarma.com\/de\/blog\/fachartikel\/kaminari-juwel\/?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=\"Kaminari-Juwel\" 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=\"Kaminari-Juwel\" href=\"https:\/\/www.railscarma.com\/de\/blog\/fachartikel\/kaminari-juwel\/?related_post_from=37277\">\r\n        Kaminari-Juwel  <\/a>\r\n\r\n        <\/div>\r\n              <div class=\"item\">\r\n            <div class=\"thumb post_thumb\">\r\n    <a  title=\"Warum sollte man im Jahr 2026 Ruby on Rails-Entwickler anheuern?\" href=\"https:\/\/www.railscarma.com\/de\/blog\/ror\/warum-sollte-man-ruby-on-rails-entwickler-engagieren\/?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=\"Warum sollte man im Jahr 2022 Ruby-on-Rails-Entwickler einstellen?\" 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=\"Warum sollte man im Jahr 2026 Ruby on Rails-Entwickler anheuern?\" href=\"https:\/\/www.railscarma.com\/de\/blog\/ror\/warum-sollte-man-ruby-on-rails-entwickler-engagieren\/?related_post_from=30627\">\r\n        Warum sollte man im Jahr 2026 Ruby on Rails-Entwickler anheuern?  <\/a>\r\n\r\n        <\/div>\r\n              <div class=\"item\">\r\n            <div class=\"thumb post_thumb\">\r\n    <a  title=\"Daten-Scraping in Rails durch Verarbeitung von CSV\" href=\"https:\/\/www.railscarma.com\/de\/blog\/fachartikel\/daten-scraping-in-rails-durch-verarbeitung-von-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=\"Daten-Scraping in Rails durch Verarbeitung von CSV\" href=\"https:\/\/www.railscarma.com\/de\/blog\/fachartikel\/daten-scraping-in-rails-durch-verarbeitung-von-csv\/?related_post_from=31591\">\r\n        Daten-Scraping in Rails durch Verarbeitung von CSV  <\/a>\r\n\r\n        <\/div>\r\n              <div class=\"item\">\r\n            <div class=\"thumb post_thumb\">\r\n    <a  title=\"F\u00fchren Sie Sprachanrufe \u00fcber Ruby on Rails-Webanwendungen durch\" href=\"https:\/\/www.railscarma.com\/de\/blog\/fachartikel\/tatigen-sie-sprachanrufe-uber-ruby-on-rails-webanwendungen\/?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=\"F\u00fchren Sie Sprachanrufe \u00fcber Ruby on Rails-Webanwendungen durch\" href=\"https:\/\/www.railscarma.com\/de\/blog\/fachartikel\/tatigen-sie-sprachanrufe-uber-ruby-on-rails-webanwendungen\/?related_post_from=31309\">\r\n        F\u00fchren Sie Sprachanrufe \u00fcber Ruby on Rails-Webanwendungen durch  <\/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\/de\/blog\/third-party-api-integration-solutions-in-ruby-on-rails\/\"> <span class=\"screen-reader-text\">API-Integrationsl\u00f6sungen von Drittanbietern in Ruby on Rails<\/span> Weiterlesen \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\/de\/blog\/fachartikel\/vermeidung-von-sicherheitsproblemen-schienen\/\" \/>\n<meta property=\"og:locale\" content=\"de_DE\" \/>\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\/de\/blog\/fachartikel\/vermeidung-von-sicherheitsproblemen-schienen\/\" \/>\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=\"Verfasst von\" \/>\n\t<meta name=\"twitter:data1\" content=\"admin\" \/>\n\t<meta name=\"twitter:label2\" content=\"Gesch\u00e4tzte Lesezeit\" \/>\n\t<meta name=\"twitter:data2\" content=\"9\u00a0Minuten\" \/>\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\":\"de\",\"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\":\"de\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.railscarma.com\/blog\/technical-articles\/preventing-security-issues-rails\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@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\":\"de\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.railscarma.com\/#organization\",\"name\":\"RailsCarma\",\"url\":\"https:\/\/www.railscarma.com\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@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\":\"de\",\"@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":"Vorbeugung von Sicherheitsproblemen in Rails - RailsCarma - Ruby on Rails Entwicklungsunternehmen, spezialisiert auf Offshore Entwicklung","description":"Sicherheit ist ein wichtiges Anliegen f\u00fcr jeden Entwickler, der eine erfolgreiche und nachhaltige Entwicklung von Webanwendungen anstrebt. Jeder Entwickler m\u00f6chte Code in","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\/de\/blog\/fachartikel\/vermeidung-von-sicherheitsproblemen-schienen\/","og_locale":"de_DE","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\/de\/blog\/fachartikel\/vermeidung-von-sicherheitsproblemen-schienen\/","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":{"Verfasst von":"admin","Gesch\u00e4tzte Lesezeit":"9\u00a0Minuten"},"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":"de","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":"Vorbeugung von Sicherheitsproblemen in Rails - RailsCarma - Ruby on Rails Entwicklungsunternehmen, spezialisiert auf Offshore Entwicklung","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":"Sicherheit ist ein wichtiges Anliegen f\u00fcr jeden Entwickler, der eine erfolgreiche und nachhaltige Entwicklung von Webanwendungen anstrebt. Jeder Entwickler m\u00f6chte Code in","breadcrumb":{"@id":"https:\/\/www.railscarma.com\/blog\/technical-articles\/preventing-security-issues-rails\/#breadcrumb"},"inLanguage":"de","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.railscarma.com\/blog\/technical-articles\/preventing-security-issues-rails\/"]}]},{"@type":"ImageObject","inLanguage":"de","@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 \u2013 Ruby on Rails-Entwicklungsunternehmen, spezialisiert auf Offshore-Entwicklung","description":"RailsCarma ist ein Ruby on Rails-Entwicklungsunternehmen in Bangalore. Wir sind auf die Offshore-Ruby-on-Rails-Entwicklung mit Sitz in den USA und Indien spezialisiert. Stellen Sie erfahrene Ruby on Rails-Entwickler f\u00fcr das ultimative Web-Erlebnis ein.","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":"de"},{"@type":"Organization","@id":"https:\/\/www.railscarma.com\/#organization","name":"SchienenCarma","url":"https:\/\/www.railscarma.com\/","logo":{"@type":"ImageObject","inLanguage":"de","@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":"Administrator","image":{"@type":"ImageObject","inLanguage":"de","@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\/de\/wp-json\/wp\/v2\/posts\/27233","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.railscarma.com\/de\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.railscarma.com\/de\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.railscarma.com\/de\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.railscarma.com\/de\/wp-json\/wp\/v2\/comments?post=27233"}],"version-history":[{"count":0,"href":"https:\/\/www.railscarma.com\/de\/wp-json\/wp\/v2\/posts\/27233\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.railscarma.com\/de\/wp-json\/wp\/v2\/media\/31715"}],"wp:attachment":[{"href":"https:\/\/www.railscarma.com\/de\/wp-json\/wp\/v2\/media?parent=27233"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.railscarma.com\/de\/wp-json\/wp\/v2\/categories?post=27233"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.railscarma.com\/de\/wp-json\/wp\/v2\/tags?post=27233"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}