[Rails-core] Default <%= to use the h (html safe) method.

Abdur-Rahman Advany rails at advany.com
Sun Feb 12 11:48:07 GMT 2006


@ nathaniel

I am agains doing h on all <%=, but why not just write a plugin? see how 
it works? sometimes it takes a extra step to convince people.

Stefan Kaes wrote:
> Nathaniel S. H. Brown wrote:
>> As I said before, I (or we, for whoever is in support) can solve the minor
>> details, and provide solutions with a little bit of creativity. I am of the
>> opinion that if you see points such as the ones you mentioned, you may also
>> be able to see how to fix them, if you so desire. I have some suggestions.
>>
>>   
>>> * Introducing this will break existing applications, which 
>>> already make use of h, since h isn't idempotent.
>>>     
>>
>> As I said previously, this could be available as a configuration option,
>> negating your remark about breaking existing applications. You would have to
>> explicitly choose to break your own application. And where would that leave
>> you? Providing the option to enable the XSS security for those who do choose
>> for it. When enabled, the h function would be wiser at detecting what it is
>> that it's encoding.
>>
>> One idea is to have a safe list of tags and html code which can be verified,
>> such as those found on the 
>>   
> In order to implement this properly you'd need to do a HTML parse 
> (including javascript!) of the string passed to h and validate that. 
> Obviously, parsing HTML is overkill for performance. And it's still 
> open whether the question "should something be escaped here" is 
> decidable at all. I believe it isn't.
>>> * And of course, it would severely hurt performance.
>>>     
>>
>> I wouldn't mind seeing a benchmark of <%= '<p>test</p> %> vs. <%=h
>> '<p>test</p>' %> to back this statement up. Understandably, the h method
>> does do a bit more. But how much more? And what about caching?
>>   
> Nice try, but the proof obligation w.r.t. implementability and 
> performance is on the proposer of the change.
>
> Why don't you go ahead and implement a plugin that changes <%= 
> semantics? Not that I would recommend it or give it a good chance of 
> success in the community, but it's up to you if you want to put effort 
> into this.
>
> -- stefan
>
> -- 
> For rails performance tuning, see: http://railsexpress.de/blog
> Subscription: http://railsexpress.de/blog/xml/rss20/feed.xml
>   
> ------------------------------------------------------------------------
>
> _______________________________________________
> Rails-core mailing list
> Rails-core at lists.rubyonrails.org
> http://lists.rubyonrails.org/mailman/listinfo/rails-core
>   



More information about the Rails-core mailing list