2013-10-01 1 views
18

Существует странное поведение в Google Chrome, который также описывается в этом вопросе: rails redirects to 'data:,'Rails 4 перенаправляет «данных :,» в Chrome

Когда новый ресурс создается и мой контроллер перенаправляет на шоу action, chrome инициирует загрузку пустой страницы с 'data:,' в адресной строке. Ответ автора, который задал вышеупомянутый вопрос, следующий:

Это функция безопасности, содержимое HTML новой страницы соответствует содержимому HTML представленной формы, которая блокирует Chrome.

Однако никаких пояснений о том, как исправить, следует. Поведение присутствует только в браузере Chrome.

+1

Если кто-нибудь знает, я тоже любопытно о той части безопасности этого. Почему Chrome считает эту функцию безопасности? –

+0

+1 Встретил «функцию» – itsnikolay

+1

У меня уже была аналогичная проблема. Переадресация кеша 301 Google Chrome. Вам просто нужно очистить кеш браузера или разработать его с помощью режима инкогнито. http://bugsquash.blogspot.fr/2008/12/google-chrome-caches-301-redirects.html, разрешенный – Ludovic

ответ

0

Хорошо, я думаю, что знаю, что это. Вы можете указать изображения и текст внутри протокола данных: я считаю, что Chrome видит экранированный HTML и думает, что это данные. Поскольку тип mime не указан, он оставляет тип mime пустым после двоеточия и просто печатает запятую.

http://guides.rubyonrails.org/security.html#redirection

Rails 4 автоматически избегает HTML, так что если вы пытаетесь, чтобы сделать HTML, вы должны указать не избежать. Посмотрите на варианты визуализации:

http://guides.rubyonrails.org/security.html#redirection

Вы можете использовать raw(), чтобы сделать прямой HTML.

http://www.webbydude.com/posts/9-the-h-helper-in-rails-3

0

Я не уверен, что это связано с вопросом MIMETYPE. У меня есть эта проблема, когда пользователь публикует запись в блоге с фреймами в своем контенте. Когда запись сохраняется, она перенаправляется на действие «показать», которое будет содержать пользовательский контент (raw/html_safe). Chrome покажет страницу в течение секунды секунды, а затем по какой-либо причине снова перенаправит на пустую страницу «данные:» (в истории она оставит только данные: и страницу отправки).

вот заголовки ответа я зарегистрированные:

рубин 2.0.0/Rails 4 мигрировали приложение с неправильным поведением (постановка сервера)

 


    Cache-Control:max-age=0, no-cache, no-store 
    Cache-Control:max-age=0, private, must-revalidate 
    Connection:Keep-Alive 
    Content-Encoding:gzip 
    Content-Length:25359 
    Content-Type:text/html; charset=utf-8 
    Date:Thu, 23 Jan 2014 16:37:11 GMT 
    ETag:"6d9d4961ea2df12de67f8a92c43579fb" 
    Server:Apache 
    Set-Cookie: _**********_session_dev=1774518c571bf4e65189d607b276e65e; domain=*********.com; path=/; expires=Thu, 23 Jan 2014 18:37:11 -0000; HttpOnly 
    Status:200 OK 
    Vary:Accept-Encoding 
    X-Content-Type-Options:nosniff 
    X-Frame-Options:SAMEORIGIN 
    X-Mod-Pagespeed:1.6.29.7-3566 
    X-Request-Id:9f5314a5-ad01-4aec-bd0f-04e8afd9bdac 
    X-UA-Compatible:chrome=1 
    X-XSS-Protection:1; mode=block 

 

рубин 1.8.7/Rails 2 приложение с правильным поведением (прод сервер)

 


    HTTP/1.1 200 OK 
    Date: Thu, 23 Jan 2014 16:32:53 GMT 
    Server: Apache 
    ETag: "f12135ddd373205352f9754328368217" 
    Cache-Control: private, max-age=0, must-revalidate 
    Status: 200 
    X-Mod-Pagespeed: 1.4.26.5-3533 
    Cache-Control: max-age=0, no-cache, no-store 
    Vary: Accept-Encoding 
    Content-Length: 27167 
    X-Cnection: close 
    Content-Type: text/html; charset=utf-8 
    Connection: Keep-Alive 
    Content-Encoding: gzip 

 

также пытались имея это в качестве исходного HTML:

 


    <!DOCTYPE html> 
    <html> 
    <head>... 

 

, а также просто (как случайные тесты, чтобы обнаружить, что может быть неправильно)

 


    <!DOCTYPE html> 
    <head>... 

 

Все, что я знаю, что если представленный контент имеет плавающие фреймы, при перенаправлении на странные пинки поведения блог «Дисплей» Паже Хрома in.

10

Я искал его и обнаружил, что редактирование сообщений с iframe в Rails 4.0 вызывает перенаправление на «данные:»

Rails 4 теперь устанавливает заголовок X-XSS-Protection для всех запросов, поэтому iframe отключает защиту XSS в Chrome после отправки формы. (https://github.com/elektronaut/sugar/issues/41#issuecomment-25987368)

Solution, добавьте его в контроллер:

before_filter :disable_xss_protection 

protected 
def disable_xss_protection 
    # Disabling this is probably not a good idea, 
    # but the header causes Chrome to choke when being 
    # redirected back after a submit and the page contains an iframe. 
    response.headers['X-XSS-Protection'] = "0" 
end 
+0

Я могу подтвердить, что это «разрешает» проблему. Хотя я согласен, это, вероятно, не лучшее решение. – cimtico

Смежные вопросы