4 ms·
Rails does suffer disproportionately from security issues. The framework code has become increasingly bloated and serious security vulnerabilities are being con
by vesinisa 13y ago
Rails does suffer disproportionately from security issues. The framework code has become increasingly bloated and serious security vulnerabilities are being continuously discovered (see http://www.cvedetails.com/vulnerability-list/vendor_id-12043/product_id-22568/Rubyonrails-Ruby-On-Rails.html http://www.cvedetails.com/vulnerability-list/vendor_id-12043...) both on the low and high level code (the seriousness of this specific vulnerability depends on application). While I like Rails, I would not choose it as a server-side framework for my product anymore: painful to maintain (backwards-compatibility is not a priority) and slow (compared to say, Go, anyway).
Rails is nowadays easily replaced. Most of the fancy server-side bits are not really that useful, and on the front-end the zeitgeist are JavaScript frameworks, where the server acts as an API but serves static HTML/JS/CSS files.
- djur 13y agoComparing Rails to Go doesn't make any sense. Rails regularly has security vulnerabilities reported because it's popular, mature, deployed in a lot of places, and thus gets a lot of attention. When something like Play or whatever is equivalent in the Go world is similarly exposed I would expect to see security vulnerabilities reported there, too. Software only _gets_ widely reported CVEs if it's popular. The lack of these reports for smaller, less popular frameworks does not indicate the lack of security flaws.
- vesinisa 13y agoIt does not suffice that a software is popular to render it insecure. OpenSSH is wildly more popular than Rails will ever be, yet it has a superior security record ( http://www.cvedetails.com/product/585/Openbsd-Openssh.html?vendor_id=97 http://www.cvedetails.com/product/585/Openbsd-Openssh.html?v... ). Good strategy to avoid security issues is to use the smallest possible set of well-tested tools to achieve your task. Rails is almost the complete opposite of this: a large package of pretty much everything, of which most will ever use only a small portion.
- grey-area 13y agoYou're comparing a web app framework to a language and then to encrypted communication software which has been around for over a decade? You're grasping at straws here and it is telling you quote the OpenSSH security record but not that of other frameworks. Even comparing it to Go is pretty flawed, because of course Go is a language, not a framework, and it has not been tested extensively or attacked extensively, nor have the apps you have written in it. You can expect those apps to have some vulnerabilities you don't even know about as yet, unless you have had a security audit? Like many projects, Rails is continually discovering potential security problems, though I wouldn't say it is significantly worse than other comparable frameworks/stacks, and some of the flaws they are fixing nowadays are pretty much harmless for normal use (some not, like this one, which is dangerous for the subset of users using these advanced features (probably under 5% of users)). Pick any other widely used app framework, and you will find a similar history of security exploits discovered, though I'm sure some are better than others. It's fine to say that Rails has worse security than project x, backed up by figures, but saying anyone using Rails is shooting themselves in the foot is hyperbole. The worst recent issue in rails I can remember is the JSON parsing incident, which also affected some python users. Just as an example comparison, in Golang if you are lazy and unmarshal into an interface or map[string]interface you might end up with similar problems of unintended data leakage, and if you unmarshal into your own struct without carefully checking what you get, you might end up with unexpected nils which only surface much later or data overwritten which was unintended. You're unlikely to get clobbered just as the Ruby JSON parser was, but you could easily introduce vulns without knowing it. I actually prefer golang to ruby for other reasons, but the frameworks are neither mature nor battle tested, so it's not a great example to compare on security, and neither is OpenSSH.
- vesinisa 13y agoHow is it going to help anyone whose web application has been hacked to know that the problem was expected because the platform they were using was so popular/complex/whatever? From a purely practical security point of view, using Rails currently for new applications is taking an aim at your own feet, because there exists less vulnerable solutions as well.