Sanitize the URLs passed to redirect_to to prevent a potential response splitting attack.

CGI.rb and mongrel don't do any sanitization of the contents of HTTP headers, so care needs to be taken.
This commit is contained in:
Michael Koziarski
2008-10-14 11:37:59 +02:00
parent de0ed534f6
commit ba80ff74a9

View File

@@ -114,8 +114,8 @@ module ActionController # :nodoc:
def redirect(url, status)
self.status = status
self.location = url
self.body = "<html><body>You are being <a href=\"#{url}\">redirected</a>.</body></html>"
self.location = url.gsub(/[\r\n]/, '')
self.body = "<html><body>You are being <a href=\"#{CGI.escapeHTML(url)}\">redirected</a>.</body></html>"
end
def sending_file?