<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	>
<channel>
	<title>Comments on: Quick Note on Ruby on Rails Security</title>
	<atom:link href="http://www.danielfischer.com/2007/12/01/quick-note-on-ruby-on-rails-security/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.danielfischer.com/2007/12/01/quick-note-on-ruby-on-rails-security/</link>
	<description>Ruby, Ruby on Rails, Los Angeles, Technology, Geek, Science, Life</description>
	<pubDate>Thu, 28 Aug 2008 12:29:26 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.5.1</generator>
		<item>
		<title>By: Anthony Etti...</title>
		<link>http://www.danielfischer.com/2007/12/01/quick-note-on-ruby-on-rails-security/#comment-19306</link>
		<dc:creator>Anthony Etti...</dc:creator>
		<pubDate>Mon, 28 Jan 2008 21:51:31 +0000</pubDate>
		<guid isPermaLink="false">http://www.danielfischer.com/2007/12/01/quick-note-on-ruby-on-rails-security/#comment-19306</guid>
		<description>Good example...I have all my writeable stuff behind an admin interface, but good to know that publicly writable areas will need to be whitelisted before going to the db.</description>
		<content:encoded><![CDATA[<p>Good example&#8230;I have all my writeable stuff behind an admin interface, but good to know that publicly writable areas will need to be whitelisted before going to the db.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Vysnu &raquo...</title>
		<link>http://www.danielfischer.com/2007/12/01/quick-note-on-ruby-on-rails-security/#comment-16577</link>
		<dc:creator>Vysnu &raquo...</dc:creator>
		<pubDate>Wed, 05 Dec 2007 00:36:27 +0000</pubDate>
		<guid isPermaLink="false">http://www.danielfischer.com/2007/12/01/quick-note-on-ruby-on-rails-security/#comment-16577</guid>
		<description>[...] Daniel Fischer - Got Fisch? » Quick Note on Ruby on Rails Security (tags: programming rails ruby rubyonrails) [...]</description>
		<content:encoded><![CDATA[<p>[...] Daniel Fischer - Got Fisch? » Quick Note on Ruby on Rails Security (tags: programming rails ruby rubyonrails) [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Daniel Fisch...</title>
		<link>http://www.danielfischer.com/2007/12/01/quick-note-on-ruby-on-rails-security/#comment-16574</link>
		<dc:creator>Daniel Fisch...</dc:creator>
		<pubDate>Wed, 05 Dec 2007 00:25:35 +0000</pubDate>
		<guid isPermaLink="false">http://www.danielfischer.com/2007/12/01/quick-note-on-ruby-on-rails-security/#comment-16574</guid>
		<description>Thanks for pointing that out, I just corrected it.

I completely agree with everything you said!</description>
		<content:encoded><![CDATA[<p>Thanks for pointing that out, I just corrected it.</p>
<p>I completely agree with everything you said!</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Dan Kubb</title>
		<link>http://www.danielfischer.com/2007/12/01/quick-note-on-ruby-on-rails-security/#comment-16542</link>
		<dc:creator>Dan Kubb</dc:creator>
		<pubDate>Tue, 04 Dec 2007 09:30:18 +0000</pubDate>
		<guid isPermaLink="false">http://www.danielfischer.com/2007/12/01/quick-note-on-ruby-on-rails-security/#comment-16542</guid>
		<description>I think you've got the terms reversed, attr_accessible is Whitelisting, while attr_protected is Blacklisting.

I believe the attr_accessible is the more secure and safer approach.  You make a decision about what you allow to be set, and protect everything else by default.. the classic firewall approach.

Even still attr_accessible is only the first line of defense.  Liberal usage of the validates_* methods should be used to specify constraints for each attribute as well.  I generally start by making the DB columns as restrictive as the underlying DB engine allows in terms of length/precision/type, etc, while still allowing for expected data.  Then I match the validates_* methods to each column's constraints. Finally I top it off with domain specific constraints; this part really is the key.. and the hardest part to get right.</description>
		<content:encoded><![CDATA[<p>I think you&#8217;ve got the terms reversed, attr_accessible is Whitelisting, while attr_protected is Blacklisting.</p>
<p>I believe the attr_accessible is the more secure and safer approach.  You make a decision about what you allow to be set, and protect everything else by default.. the classic firewall approach.</p>
<p>Even still attr_accessible is only the first line of defense.  Liberal usage of the validates_* methods should be used to specify constraints for each attribute as well.  I generally start by making the DB columns as restrictive as the underlying DB engine allows in terms of length/precision/type, etc, while still allowing for expected data.  Then I match the validates_* methods to each column&#8217;s constraints. Finally I top it off with domain specific constraints; this part really is the key.. and the hardest part to get right.</p>
]]></content:encoded>
	</item>
</channel>
</rss>
