{"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":"preventing-security-issues-rails","status":"publish","type":"post","link":"https:\/\/www.railscarma.com\/sv\/blogg\/tekniska-artiklar\/preventing-security-issues-rails\/","title":{"rendered":"Preventing security issues 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>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 do their best to make their applications with minimum vulnerability to attacks. Detecting vulnerabilities is easy but security breaches and hacks might result in losses. This is the reason why it is always better to check for security issues right from the start of the application development process along with conducting regular quality checks to keep things on track.<\/p><h3><strong>1] Sessions<\/strong><\/h3><p>A good place to start evaluating the security is with the sessions, which can be vulnerable to certain attacks.<\/p><pre><code>session[:user_id] = @current_user.id\nUser.find(session[:user_id])<\/code><\/pre><p>&#8211; By default, Ruby on Rails uses a Cookie-based session store. This implies that unless something is changed, the session will not expire on the server. So, it means that we should never keep sensitive data such as passwords and IDs etc in sessions.<br \/>&#8211; The best practice therefore, is to work with a database based session, which is very easy with Rails &#8211;<\/p><p>Project::Application.config.session_store :active_record_store<br \/>Session ID is a 32-character random hexadecimal string.<\/p><p>The session ID is generated using SecureRandom.hex which generates a random hexadecimal string using any of the platform-specific methods such as OpenSSL, \/dev\/urandom or Win32, for generating cryptographically secure random numbers. Currently, it is not possible to brute-force i.e trial and error attack on login credentials in Rails&#8217; session Ids.<\/p><p>Here are some of the common session based attacks:<br \/>Session Hijacking:- This allows the attackers to steal a user&#8217;s session ID and use the web application in the victim&#8217;s name.<br \/>Session Fixation:- Apart from stealing a user&#8217;s session ID, the attacker is also capable of fixing a session ID known to them. This is called as session fixation.<br \/>Session Expiry:- The attackers attempt to also increase the time-frame of the attack with sessions that never expire. The attacks such as cross-site request forgery (CSRF), session hijacking and session fixation are the examples.<\/p><h3><strong>2] Command Injection<\/strong><\/h3><p>An application becomes vulnerable to command injection, in case the attacker is able to influence the command line parameters or the Unix commands as a whole. However, since running the UNIX commands in Rails is not common, these attacks are less likely to take place.<br \/>On the other hand, vulnerabilities may arise in a background process that making direct use of the Unix commands for the customer data.<\/p><p>Here are some of the common Rails command line methods:<br \/>%x[&#8230;]<br \/>system()<br \/>exec()<br \/>`&#8230;`<br \/>It should also be noted that there are more than one ways how to chain commands together, but that also depends on the hosting operating system. Examples: &#8220;&amp;&#8221;, &#8220;&amp;&amp;&#8221;, &#8220;|&#8221;, &#8220;||&#8221; etc.<br \/>Secured environment variables while running commands<br \/>The processes that are run by your rails applications get the environment variables of the parent processes which may comprise of the API keys etc.<\/p><h3><strong>3] SQL \u00a0Injection<\/strong><\/h3><p>SQL injection happens when a user is able to manipulate a value which is used unsafely inside an SQL query. This can result in data loss, data leaks, elevated privilege among the other undesired outcomes.<\/p><p>SQL injection is very easy and common attack which usually occurs and its impact can be very severe depends on the website and the situation it occurs.<\/p><p>As developers we should take care of all those possibilities where SQL injection can occur and should handle the same accordingly.<\/p><p>This is what SQL Injection looks like:<\/p><pre><code>Employee.all(:conditions =&gt; \"designation = #{params[:designation]}\")<\/code><\/pre><p>Above code is vulnerable to SQL injection , following code will prevent from SQL injection.<\/p><pre><code>Employee.all(:conditions =&gt; ['designation = ?', params[:designation]])<\/code><\/pre><p>ELLER<\/p><pre><code>Employee.all(:conditions =&gt; {:designation =&gt; params[:designation]})<\/code><\/pre><h5><strong>Counter-measures against SQL Injection in Rails<\/strong><\/h5><p>Testing every statement for SQL injection can be a tedious job but we should take some countermeasures like static code scanner like brakeman and you can write some unit test cases.<br \/><strong>a)General rule:<\/strong>&#8211; Never use params in string inflection (#{}) like so<br \/>Eg<\/p><pre><code>User.where(\"name = '#{params[:name]}'\")<\/code><\/pre><p><strong>b)Watch out that params may also be an array, for example:<\/strong><\/p><p>params[:user] if you add ?user[]=1 to the URL. User.exists? params[:user] will then run the query SELECT 1 AS one FROM &#8220;users&#8221; WHERE (1) LIMIT 1.<\/p><h3><strong>4] Cross-site Scripting (XSS)<\/strong><\/h3><p>With the help of XSS, an attacker gets enabled to execute scripts in the security context of your web application.<\/p><p>Consider this Rails view snippet: &lt;%= @flat.title %&gt;. If the flat\u2019s title is edited along with adding the HTML, this Rails view renders that HTML in the application\u2019s security context. Thus, the browser would run the HTML, which is XSS.<\/p><p>In fact, this doesn\u2019t work in Rails these days yet, in Rails version 2 you\u2019d be required to escape every single user input: &lt;%= h(@flat.title) %&gt;<br \/>Nowadays, rails comes with a flag on each string which marks it as HTML whether safe or not: @flat.title.html_safe?. In case it is not safe ( for example from a parameter, from the database, \u2026), it will get automatically escaped while using it in this way: &lt;%= @flat.title %&gt;<br \/>In Rails 3.0 protection against XSS is a default behavior.<\/p><h3><strong>Counter-measures<\/strong><\/h3><p><strong>a) A Content Security Policy(CSP) strategy<\/strong><\/p><p>A Content Security <a href=\"https:\/\/www.railscarma.com\/sv\/cookiepolicy\/\">Policy<\/a> is basically in the form of an HTTP header and this makes a declaration of the rules about what all sources are allowed for all kinds of assets. As a consequence of following these rules, all else is disallowed. Once implemented appropriately, it is capable of wiping out all the Cross-Site-Scripting (XSS) vulnerabilities in your app.<\/p><p><strong>b) HTML-Safe,ActiveSupport::SafeBuffer<\/strong><\/p><p>The ActiveSupport::SafeBuffer module was introduced by Rails 3 to add an HTML-safe flag to strings. By default, it is false, especially, when the string has an external source such as the database or the params. The flag is returned with \u201cstring\u201d.html_safe?.<\/p><p>The HTML-escape method h(), escapes the string marking a string as HTML-safe.<\/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 Prevention<\/strong><\/p><p>For the prevention of XSS, all the untrusted data needs to be denied and restricted from being put directly into the HTML or any other context (like JavaScript, CSS, attribute contexts).<\/p><p><strong>d) XSS protection in HAML templets<\/strong><\/p><p>While using the Haml templates, instead of ERB, strings are automatically escaped in the same way as in ERB templates. And in the same way as it is with the ERB templates, HTML-safe strings (string.html_safe? returns true) do not get skipped automatically. The != notation in Haml works the way &lt;%= raw(\u2026) %&gt; works in ERB, so, it renders the unescaped version.<br \/>Som standard,<\/p><pre><code>=\"<em>emphasized<em>\"\n!= \"<em>emphasized<em>\"<\/em><\/em><\/em><\/em><\/code><\/pre><p>compiles to:<\/p><pre><code>&lt;em&gt;emphasized&lt;\/em&gt;\n<em>emphasized<\/em><\/code><\/pre><p>So care should be taken while using != in Haml and it should be made sure that no user data is rendered unescaped.<br \/>Following are some preventive measures which can be taken care of while developing rails application.<\/p><h5><strong>1] Authentication<\/strong><\/h5><p>Use Device or Authlogic gem.<br \/>&#8211; To enable auth please dont forget to add -&gt;<\/p><p>class ProjectController &lt; ApplicationController<br \/>before_filter :authenticate_user<br \/>&#8211; By default Devise requires only \u00a06 characters for a password. The minimum can be changed in: \/config\/initializers\/devise.rb<br \/>config.password_length = 8..128<br \/>&#8211; You can change the password complexity by adding the following code in user model.<\/p><pre><code>validate :password_complexity\ndef password_complexity\nif password.present? and not password.match(\/\\A(?=.*[a-z])(?=.*[A-Z])(?=.*\\d).+\\z\/)\nerrors.add :password, \"must include at least one lowercase letter, one uppercase letter, and one digit\"\nend\nend<\/code><\/pre><h5><strong>2] Insecure Direct Object Reference or Forceful Browsing<\/strong><\/h5><p>&#8211; Ruby on Rails apps make use of a restful URL structure making the paths used mostly guessable and intuitive. So, in order to protect against a user trying to access or modify data that belongs to another user, the actions need to be specifically controlled. There is no such built-in kind of a protection out of t he gate on a vanilla Rails application. Further, it can be performed manually at the controller level.<br \/>&#8211; Use cancancan or pandit for access control<\/p><h5><strong>3] Mass Assignment and Strong Parameters<\/strong><\/h5><pre><code>- class Project &lt; ActiveRecord::Base\nattr_accessible :name, :admin\nend<\/code><\/pre><p>According to the example above, with the admin attribute accessible, the following could work:<br \/>&#8211; curl -d \u201cproject[name]=triage&amp;project[admin]=1\u201d host:port\/projects<br \/>&#8211; config.active_record.whitelist_attributes = true<\/p><h5><strong>4] Redirects and Forwards<\/strong><\/h5><p>&#8211; It is advisable to avoid using the redirects that use parameters<br \/>For eg:- \/\/www.example.com\/redirect?url=\/\/www.example_commerce_site.com\/checkout<br \/>&#8211; restrictive protection is to use the :only_path<\/p><pre><code>begin\nif path = URI.parse(params[:url]).path\nredirect_to path\nend\nrescue URI::InvalidURIError\nredirect_to '\/'\nend<\/code><\/pre><p>&#8211; Have hash of approved sites and allow only them to get redirected.<\/p><h5><strong>5] Dynamic Render Paths<\/strong><\/h5><p>&#8211; Care should be taken when you are dynamically rendering any view based on some condition. It might result in loading admin view.<\/p><h5><strong>6] Cross Origin Resource Sharing<\/strong><\/h5><p>&#8211; Like file upload.<br \/>&#8211; The receiving site should restrict and allow only whitelisted domains and make sure that requests are also coming from those domains only.<br \/>&#8211; Also set the Access-Control-Allow-Origin header in both the response to the OPTIONS request and POST request. This is because the OPTIONS request is sent first, in order to determine if the remote or receiving site allows the requesting domain.<br \/>&#8211; A POST request, is sent. Once again, the header must be set in order for the transaction to be shown as successful.<\/p><h5><strong>7] Business Logic Bugs<\/strong><\/h5><p>&#8211; The applications regardless of the technology they are based on, can comprise of business logic errors that are prone to lead to security bugs. It can be really tricky to detect such security bugs using the automated tools. The practices such as regular reviews of the codes, pair programming and writing unit tests can help you best avoid such security bugs to arise.<\/p><h5><strong>8] Sensitive Files<\/strong><\/h5><p>Following are some files which we should take care of while developing a web application.<br \/>\/config\/database.yml- May contain production credentials.<br \/>\/config\/initializers\/secret_token.rb &#8211; Contains a secret used to hash session cookie.<br \/>\/db\/seeds.rb &#8211; May contain seed data including bootstrap admin user.<br \/>\/db\/development.sqlite3 &#8211; May contain real data.<\/p><h5><strong>9] Encryption<\/strong><\/h5><p>Ruby on Rails uses OS encryption. You should almost never write your own solutions for encryption.<br \/>Updating Rails and Having a Process for Updating Dependencies.<\/p><h4><strong>Tools to detect security issues in rails application<\/strong><\/h4><ul><li>Bromsare<\/li><li>bundler-audit<\/li><li>Codesake::Dawn<\/li><li>Rack::Attack<\/li><li>Tarantula<\/li><li>Hakiri Toolbelt<\/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\">Prenumerera f\u00f6r de senaste uppdateringarna<\/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=\"lastare\"><\/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-postadress\">\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=\"namn\">\r\n<\/p>\r\n<p>\r\n    <input type=\"submit\" id=\"invisible\" class=\"sib-default-btn\" value=\"Prenumerera\">\r\n<\/p>\t\t\t\t<\/div>\n\t\t\t<input type=\"hidden\" name=\"trp-form-language\" value=\"sv\"\/><\/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\">relaterade inl\u00e4gg<\/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 Gem\" href=\"https:\/\/www.railscarma.com\/sv\/blogg\/tekniska-artiklar\/kaminari-parla\/?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 p\u00e4rla\" 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 Gem\" href=\"https:\/\/www.railscarma.com\/sv\/blogg\/tekniska-artiklar\/kaminari-parla\/?related_post_from=37277\">\r\n        Kaminari Gem  <\/a>\r\n\r\n        <\/div>\r\n              <div class=\"item\">\r\n            <div class=\"thumb post_thumb\">\r\n    <a  title=\"Varf\u00f6r anst\u00e4lla Ruby on Rails-utvecklare 2026?\" href=\"https:\/\/www.railscarma.com\/sv\/blogg\/ror\/varfor-anlita-utvecklare-av-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=\"varf\u00f6r anlita utvecklare av ruby on rails 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=\"Varf\u00f6r anst\u00e4lla Ruby on Rails-utvecklare 2026?\" href=\"https:\/\/www.railscarma.com\/sv\/blogg\/ror\/varfor-anlita-utvecklare-av-ruby-on-rails\/?related_post_from=30627\">\r\n        Varf\u00f6r anst\u00e4lla Ruby on Rails-utvecklare 2026?  <\/a>\r\n\r\n        <\/div>\r\n              <div class=\"item\">\r\n            <div class=\"thumb post_thumb\">\r\n    <a  title=\"Dataskrapning i skenor genom att bearbeta CSV\" href=\"https:\/\/www.railscarma.com\/sv\/blogg\/tekniska-artiklar\/dataskrapning-i-skenor-genom-att-bearbeta-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=\"Dataskrapning i skenor genom att bearbeta CSV\" href=\"https:\/\/www.railscarma.com\/sv\/blogg\/tekniska-artiklar\/dataskrapning-i-skenor-genom-att-bearbeta-csv\/?related_post_from=31591\">\r\n        Dataskrapning i skenor genom att bearbeta CSV  <\/a>\r\n\r\n        <\/div>\r\n              <div class=\"item\">\r\n            <div class=\"thumb post_thumb\">\r\n    <a  title=\"Ring r\u00f6stsamtal genom Ruby on Rails webbapplikationer\" href=\"https:\/\/www.railscarma.com\/sv\/blogg\/tekniska-artiklar\/ringa-rostsamtal-genom-ruby-on-rails-webbapplikationer\/?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=\"Ring r\u00f6stsamtal genom Ruby on Rails webbapplikationer\" href=\"https:\/\/www.railscarma.com\/sv\/blogg\/tekniska-artiklar\/ringa-rostsamtal-genom-ruby-on-rails-webbapplikationer\/?related_post_from=31309\">\r\n        Ring r\u00f6stsamtal genom Ruby on Rails webbapplikationer  <\/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\/sv\/blogg\/third-party-api-integration-solutions-in-ruby-on-rails\/\"> <span class=\"screen-reader-text\">L\u00f6sningar f\u00f6r API-integration fr\u00e5n tredje part i Ruby on Rails<\/span> L\u00e4s mer \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\/sv\/blogg\/tekniska-artiklar\/preventing-security-issues-rails\/\" \/>\n<meta property=\"og:locale\" content=\"sv_SE\" \/>\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\/sv\/blogg\/tekniska-artiklar\/preventing-security-issues-rails\/\" \/>\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=\"Skriven av\" \/>\n\t<meta name=\"twitter:data1\" content=\"admin\" \/>\n\t<meta name=\"twitter:label2\" content=\"Ber\u00e4knad l\u00e4stid\" \/>\n\t<meta name=\"twitter:data2\" content=\"9 minuter\" \/>\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\":\"sv-SE\",\"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\":\"sv-SE\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.railscarma.com\/blog\/technical-articles\/preventing-security-issues-rails\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"sv-SE\",\"@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\":\"sv-SE\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.railscarma.com\/#organization\",\"name\":\"RailsCarma\",\"url\":\"https:\/\/www.railscarma.com\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"sv-SE\",\"@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\":\"sv-SE\",\"@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":"Preventing security issues in Rails - RailsCarma - Ruby on Rails Development Company specializing in Offshore Development","description":"Security is a major concern for any developer aspiring for successful and sustainable development of web applications. Every developer wants to 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\/sv\/blogg\/tekniska-artiklar\/preventing-security-issues-rails\/","og_locale":"sv_SE","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\/sv\/blogg\/tekniska-artiklar\/preventing-security-issues-rails\/","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":{"Skriven av":"admin","Ber\u00e4knad l\u00e4stid":"9 minuter"},"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":"sv-SE","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":"sv-SE","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.railscarma.com\/blog\/technical-articles\/preventing-security-issues-rails\/"]}]},{"@type":"ImageObject","inLanguage":"sv-SE","@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 specialiserat p\u00e5 Offshore Development","description":"RailsCarma \u00e4r ett Ruby on Rails Development Company i Bangalore. Vi \u00e4r specialiserade p\u00e5 Offshore Ruby on Rails Development baserat i USA och Indien. Anst\u00e4ll erfarna Ruby on Rails-utvecklare f\u00f6r den ultimata webbupplevelsen.","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":"sv-SE"},{"@type":"Organization","@id":"https:\/\/www.railscarma.com\/#organization","name":"RailsCarma","url":"https:\/\/www.railscarma.com\/","logo":{"@type":"ImageObject","inLanguage":"sv-SE","@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":"administration","image":{"@type":"ImageObject","inLanguage":"sv-SE","@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\/sv\/wp-json\/wp\/v2\/posts\/27233","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.railscarma.com\/sv\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.railscarma.com\/sv\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.railscarma.com\/sv\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.railscarma.com\/sv\/wp-json\/wp\/v2\/comments?post=27233"}],"version-history":[{"count":0,"href":"https:\/\/www.railscarma.com\/sv\/wp-json\/wp\/v2\/posts\/27233\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.railscarma.com\/sv\/wp-json\/wp\/v2\/media\/31715"}],"wp:attachment":[{"href":"https:\/\/www.railscarma.com\/sv\/wp-json\/wp\/v2\/media?parent=27233"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.railscarma.com\/sv\/wp-json\/wp\/v2\/categories?post=27233"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.railscarma.com\/sv\/wp-json\/wp\/v2\/tags?post=27233"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}