Hey there!

I find myself using remote: true on forms and rendering say create.js.erb in 
the xhr response quite a lot. The create.js.erb template would typically 
contain something like:

$('.comments').prepend('<%= j render @comment %>');

This gives me a lot of the niceties in Rails and a pretty snappy user 
experience. However, you must *always* remember to use escape_javascript / j 
in order to escape javascript properly/safely. This annoys me as it is not 
secure by default (hey if you forget to do it, most likely things will not 
work), like the html escaping is done for regular html templates.

But this is a .js.erb template, so Rails should know that anything coming 
from a <%= %> block needs to be properly escaped for javascript, just like 
everything just works for html templates.

So my question is, couldn't it be possible to make something similar to the 
html_safe methods just for javascript and start escaping output for 
javascript by default in .js.erb templates? And possibly add similar 
default escaping for other kinds of templates if any?

Curious to hear what you think!
-Eirik

-- 
You received this message because you are subscribed to the Google Groups "Ruby 
on Rails: Core" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/rubyonrails-core.
For more options, visit https://groups.google.com/d/optout.

Reply via email to