Screencast: Sortierbare Tabellen

Ryan zeigt in diesem Screencast wie Tabellen auf- und absteigend sortiert werden können.

 

Download:

Download(16.2 MB, 10:52)
Alternativer Download für iPod & Apple TV(15.4 MB, 10:52)

 

Resourcen:

 

Quellcode:

[ruby]
class ProductsController < ApplicationController
helper_method :sort_column, :sort_direction

def index
@products = Product.order(sort_column + " " + sort_direction)
end

# …

private

def sort_column
Product.column_names.include?(params[:sort]) ? params[:sort] : "name"
end

def sort_direction
%w[asc desc].include?(params[:direction]) ? params[:direction] : "asc"
end
end

# application_helper.rb
def sortable(column, title = nil)
title ||= column.titleize
css_class = column == sort_column ? "current #{sort_direction}" : nil
direction = column == sort_column && sort_direction == "asc" ? "desc" : "asc"
link_to title, {:sort => column, :direction => direction}, {:class => css_class}
end
[/ruby]

[html]
<!– products/index.html.erb –>
<tr>
<th><%= sortable "name" %></th>
<th><%= sortable "price" %></th>
<th><%= sortable "released_at", "Released" %></th>
</tr>
[/html]

[css]
/* application.css */
.pretty th .current {
padding-right: 12px;
background-repeat: no-repeat;
background-position: right center;
}

.pretty th .asc {
background-image: url(/images/up_arrow.gif);
}

.pretty th .desc {
background-image: url(/images/down_arrow.gif);
}
[/css]

Security on Rails

The advantage of using Rails is its agility; it makes developing your web applications easy and fast. The disadvantage is that it can leave holes in your security if you are not aware of common vulnerabilities. It’s a nerve-wracking and unfortunate fact that there are plenty of malicious people lurking on the Web. As a Rails developer, it is essential that you understand how to assess risk and protect your data and your users.

Security on Rails uses established security principles to teach you how to write more secure software, defend your applications from common threats, and encrypt your data. We’ll give you an example of a hacking exploit, and explore how to fix the weaknesses in an application.

You’ll learn the steps you need to take to control access to information and authenticate users, including cryptography concepts and authorization. In addition, you’ll see how to integrate your applications with external management systems; in short, the crucial details you must consider to protect yourself and your data.

The most important element of security is to plan for it before it becomes an issue. Security on Rails helps beginner and intermediate developers to take control of their applications and guard against attacks.

Neues Ruby 1.9 Release

Der Ruby1.9 Maintainer Yuki Sonoda (Yugui) hat heute eine neue Ruby-Version veröffentlicht (Ruby 1.9.1-p376). Es behebt mitunter eine Sicherheitslücke für folgende String-Methoden: String#ljust, String#center and String#rjust.

Weiterhin wurden, laut Changelog, ca. 100 Fehler aus der vorherigen Version behoben.
Details über die Fehler und deren Behebung können im Changelog nachgelesen werden: http://svn.ruby-lang.org/repos/ruby/branches/ruby_1_9_1/ChangeLog

Screencast: 7 Sicherheitstips

Auf Screencasts.com ist heute ein weiterer Screencast erschienen. In dieser Folge werden sieben Tips beschrieben um die Sicherheit innerhalb Rails-Applikationen zu erhöhen.

Downloadlinks:

Download (22.2 MB, 14:53)

Alternativer Download for iPod & Apple TV(16.9 MB, 14:53)

Weitere Ressourcen:

  • Rails Security Guide
  • Full episode source code

Links und Quellcodes zu den einzelnen Beispielen:

1 Mass Assignment:

[ruby]

# script/console
p = Project.find(2)
p.update_attributes(:task_ids => [4])
p.tasks

# models/project.rb
attr_accessible :name, :photo
[/ruby]

2 File Uploads
Disabling Script Execution with Apache

[ruby]
# models/project.rb
validates_attachment_content_type :photo, :content_type => [‚image/jpeg‘, ‚image/png‘]
# more security required
[/ruby]

3 Filter Log Params
Episode 9: Filtering Sensitive Logs

[ruby]
# application_controller.rb
filter_parameter_logging :password
[/ruby]

4 CSRF Protection
Cross-site Request Forgery
Rails authenticity token with jQuery

[ruby]
# application_controller.rb
protect_from_forgery
[/ruby]

5 Authorizing Ownership

[ruby]
# projects_controller.rb
def show
@project = current_user.projects.find(params[:id])
end
[/ruby]

6 SQL Injection
SQL Injection
Episode 25: SQL Injection

[ruby]
# projects_controller.rb
def index
@projects = current_user.projects.all(:conditions => ["name like ?", "%#{params[:search]}%"])
end
[/ruby]

7 HTML Injection (XSS)
Cross Site Scripting
Episode 27: Cross Site Scripting

[ruby]
<!– projects/show.html.erb –>
<%=h task.name %>
[/ruby]

Rails 2.3.4 veröffentlicht

Ruby 2.3.4 wurde soeben veröffentlicht. Das Release behebt ein paar Fehler und vor allen Dingen schließt es ein paar gefundne Sicherheitslöcher die entdeckt wurden.

Securityfixes:

  • XSS-Vulnerability
  • MessageVerifier
  • CookieStore

Bugfixes:

Es wurden ca. 100 Bugfixes vorgenommen. Bei interesse findet ihr im Changelog alle Details dazu

New Features:

  • Das i18n plugin läd nun automatisch locales files
  • seed.rb is t nun die Standard-Datei um Daten während der Migration in die DB zu laden

Rails Security: Sicher ist sicher

Ruby on Rails bringt bereits von Haus aus einiges in Sachen Sicherheit mit.

Auf der letzten Konferenz des OWASP (Open Web Application Security Project) hat Rails als einer der Frameworks mit den sichersten Bordmitteln abgeschnitten.

Auf der OWASP-Konferenz (http://www.owasp.org/) hat Heiko Webers auch sein konstenloses E-Book “Ruby on Rails Security Guide” vorgestellt.

Den Download-Link findet ihr auf seiner Rails-Security-Seite
http://www.rorsecurity.info/the-book.

Das E-Book ist gleichzeitig der offizielle Ruby on Rails Guide zur Sicherheit (http://guides.rubyonrails.org).

Die Arbeit von Heiko ist eine Bereicherung für die Rails-Community, und jeder, der eine Applikation live nimmt, sollte einen Blick in dieses Werk werfen.

Viel Spaß bei der Lektüre.

Rails 1.2.6: Security und Maintenance Release

Das Rails-Core-Team hat das Release 1.2.6 veröffentlicht. Diese Version schließt eine Session-Sicherheitslücke und weitere kleinere Fehler.

Genauere Details zu dem Bugfix können dem CVE-Identifiern CVE-2007-6077 entnommen werden.

Ein Update kann über ‘gem install rails’ erfolgen. Anschließend sollte in ‘config/environment.rb’ der Wert für RAILS_GEM_VERSION auf ‘1.2.6’ gesetzt werden.

Rails 1.2.5: Security und maintenance release

Ein weiteres Maintenance Release Rails 1.2.5 ist veröffentlicht worden.

Das Release schließt eine Cross-Scripting Sicherheitslücke die in Verbindung mit JSON auftritt. Wenn JSON verwendet wird, wird empfohlen die Rails-Umgebung auf den neusten Stand zu bringen.

Das Update läßt sich wie gewohnt über `gem install rails` ausführen.
Weiterhin muss die Konstante “RAILS_GEM_VERSION” in config/environment.rb nach ‘1.2.5’ aktualisiert werden.

Mit einem anschließenden `rake rails:update:configs` sollten alle Updates in der Arbeitsumgebung aktualisiert sein.

Rail-Konf Video: Sicherheit von Ruby on Rails (Heiko Webers)

Über die Videopräsentation
Jeden Tag stehlen kriminelle Hacker zahlreiche Kreditkartennummern, vertrauliche Informationen, Passwörter und alles andere, was sie zu Geld machen können. Sie verunstalten Webseiten, beinträchtigen die Verfügbarkeit von Web Anwendungen oder löschen Daten. Viele Unternehmen sind heute vom Internet abhängig, der Bereich der Sicherheit sollte deshalb nicht ignoriert werden. Viele Entwickler sehen Rails als ein „sicheres“ Framework an. Das mag stimmen, da weniger Code geschrieben werden muss, und weniger Code bedeutet einen besseren Überblick. Tatsächlich aber hängen die meisten Sicherheitsprobleme in Web Anwendungen nicht von der eingesetzten Programmiersprache oder dem Framework ab, sondern betreffen Web Anwendungen im Allgemeinen. Dieser Vortrag behandelt die bekanntesten Angriffe, wie Interpreter Injection im Bezug auf Rails (Cross-Site Scripting (XSS), SQL Injection, Logic Injection), verbreitete Konfigurationsfehler, Session- und Benutzerverwaltung, Ajax-Sicherheit, Sicherheitstipps und mehr. Rails hat gute Sicherheits-Features, man muss sie nur einsetzen.

Über den Autor
Heiko Webers ist freiberuflicher Berater und Softwareentwickler im Bereich von Internet-Anwendungen. Er erforscht neue Entwicklungs- und Internettechnologien, Knowledge Engineering und Softwaresicherheit. Im Rahmen seiner Abschlussarbeit an der Universität beschäftigte er sich mit der Sicherheit von Internet Anwendungen im Hinblick auf Ruby On Rails. Vor kurzem startete er mit der Open Web Application Security Project (OWASP) das Ruby On Rails Security Project (www.rorsecurity.info).

Link: http://www.loroma.com/loroma/movie.faces?movie=12