Rails 3.2.10 Security Fix

Gerade eben gab es ein Patch-Release von Rails. Wichtig: Hierbei sollte jeder so schnell es geht updaten.

Das Update beseitigt eine Sicherheitslücke in ActiveRecord. Dadurch war es möglich, dass in den dynamic Filters von ActiveRecord SQL-Code eingeschleust werden konnte.

Ein Beispiel:

 

User.find_by_id(params[:id])

Dieser dynamische Filter liefert den ersten User mit der übergebenen ID zurück. Ebenso wie:

User.where(id: params[:id]).first

Mittels einem Hash kann als Parameter auch SQL Syntax mitgegeben werden, welche ausgeführt wird. Um dies zu umgehen, sollte schnellstmöglichst auf die aktuelle Rails Version upgedated werden. Sollte das nicht möglich sein, wurden dafür auch Patches bereitgestellt.

Facebook Open Graph mit Heroku

Neulich wollte ich mal den Railshoster Heroku ausprobieren. Hier gibts standardmäßig gratis eine 5 MB Datenbank und einen Web-Dyno dazu. Ein Web-Dyno kümmert sich um die HTTP Anfragen und führt den Ruby on Rails Code aus. Für kleine Apps reicht das sicherlich schon aus.

So nun mal zu meiner kleinen App. Mit dieser will ich gerne neue Open Graph Aktivitäten zu der Timeline eines Facebook Benutzers hinzufügen. Wem dies jetzt nichts sagt, der kann gerne mal hier etwas zum Facebook Open Graph lesen.

Weiterlesen

Rails 3.2.8 wurde veröffentlicht

Heute um kurz nach Mitternacht wurde Rails 3.2.8 veröffentlicht. Neben der Änderung der Dependency Policy, über welche ich schon in einem vorherigen Artikel geschrieben habe, beinhaltet das Patch-Release auch noch ein paar wichtige Sicherheitsfixes.

Bei einem Sicherheitsupdate handelt es sich um Änderungen im HTML escaping. So wurden hier bisher keine einfachen Anführungszeichen escaped. Die beiden anderen Fixes behandeln XSS-Anfälligkeiten in den Helpern select_tag und strip_tags. select_tag kannt mittels der Option :promt ein Text deffiniert werden, welcher den User darauf hinweist, etwas aus der Select-Box auszuwählen. Dieser Wert wurde zuvor ungeparst ausgegeben.

Updaten könnt ihr wie gewöhnlich mit dem Befehl bundle update rails im Bundler. Die Sicherheitsupdates wurden ebenfalls für Rails 3.1 und Rails 3.0 in den Versionen 3.1.8 und 3.0.17 veröffentlicht. Um hier zu updaten muss in der Gemfile die genaue Angabe der zu verwendenden Rails-Version eingetragen bzw. geändert werden:  gem "rails", "3.1.8" und danach bundle install ausgeführt werden. Die Änderungen können wie immer hier eingesehen werden.

Rails 3.2.8 – Neue Deprecation Policy

Diesen Montag, 1. August, wurde ein neuer Release Candidate 1 von Rails in der Version 3.2.8 veröffentlicht. In dieser Version wurden nur wenig Änderungen vorgenommen. Eine Auflistung der vorgenommenen Änderungen zeigt, dass es sich hauptsächlich um das Hinzufügen und Entfernen von “Deprecation Warnings” handelt. Diese Warnings verweisen auf gewisse Methoden und Attribute, welche in späteren Releases nicht mehr unterstützt werden. Um den Entwickler nicht gleich ins kalte Wasser zu schmeissen, werden in Rails bei Verwendung von bald nichtmehr vorhandener Methoden / Attribute, Warnungen ausgegeben. Diese Hinweise beinhalten meist die Version, ab wann der verwendete Befehl nicht mehr unterstützt wird und eine Alternative dazu.

Das Rails Entwicklerteam hat ab dieser Version beschlossen, die Deprecation Policy zu ändert. Ab jetzt werden nurnoch in Sogenannten Major und Minor Releases API Deprecations hinzugefügt.
Um den neuen Deprecation-Zyklus besser zu verstehen, wandte ich mich an Santiago Pastorino, einen der Rails Core Entwickler.
Bei dem Release von Rails 4.0.0 werden neue API Deprecations bekanntgegeben und die Warnings dem Code hinzugefügt. Wird das Release 4.1.0 veröffentlicht, werden die in 4.0.0. als deprecated gekennzeichneten Methoden und Funktionen aus dem Rails-Code entfernt und neue, bald nicht mehr unterstützte API-Befehle, bekanntgegeben. Neue Deprecations werden aber nicht in Patch-Releases bekanntgegeben und hinzugefügt – so wie Rails 3.2.8 eines ist. Somit wurden alle Deprecation-Warnings, welche in den Versionen 3.2.x eingeführt wurden, wieder entfernt und werden erst in dem Release 4.0.0 hinzugefügt.

RailsInstaller für Mac OS X

Das RailsInstaller Paket erleichtert das Einrichten einer Entwicklungsumgebung für Rails. Wie ihr Rails unter Windows mit dem RailsInstaller installieren könnt, habe ich hier bereits beschrieben. Bisher gab es diesen Installer nur für Windows Systeme und nun wurde dieser in der Version 1.0 für Mac OS X Systeme veröffentlicht. Ebenso wie die Windows Version bringt dieses Paket Ruby 1.9.3, Rails 3.2.2, Git sowie Sqlite 3 mit sich.
Zusätzlich kommt noch der Ruby Version Manager rvm mit diesem sich mehrere Ruby Versionen auf dem System installieren lassen. Zur besseren Darstellung von RVM hilft JewelryBox mit. Eine grafische Umgebung zur Verwaltung von RVM.

Weitere Infos und den Installer selbst findet ihr auf http://railsinstaller.org/