2009-09-07 2 views
0

Я хочу защитить форму входа в систему моего приложения Rails с помощью HTTPS. После небольшой битвы я теперь установил сертификат SSL и правильно установил Apache/Passenger.Rails 'form_tag помощник не отправляет с помощью HTTPS?

Мое приложение использует SSL Requirement и RESTful Authentication в сочетании для формы входа в систему. Я заметил использование Firebug, что учетные данные для входа по-прежнему отправляются в clear. Как я могу сделать Rails form_tag хелпер отправить форму через HTTPS? Я ничего не мог понять об этом в документах.


EDIT: Я сделал некоторые дополнительные исследования и редактировать мой файл маршрутов, так что контроллер сеанса использует HTTPS:

map.resource :session, :controller => 'session', 
         :only => [:new, :create, :destroy], 
         :requirements => { :protocol => 'https' } 

Я также изменил форму регистрации, чтобы использовать session_url вместо session_path:

<% form_tag session_url do %> 
    . 
    . 
    . 
<% end %> 

— Это правильно, используя полный https: // URL как action для сгенерированного элемента form, но я все еще могу нюхать имя пользователя и пароль с помощью Firebug. Что происходит?!

Спасибо.

ответ

2

Поскольку Firebug является расширением внутри Firefox, он, вероятно, видит данные запроса, прежде чем он зашифруется. Если вы хотите проверить это правильно, вы должны использовать инструмент вне Firefox.

+0

Ваше утверждение верное. Я протестировал его на некоторых других сайтах с безопасными формами, а содержимое полей появилось в виде открытого текста в Firebug. –

3
<%= form_for user, {:url => https_path} do %> 
... 
<% end %> 
+0

Помогло ли вам это? – Lichtamberg

+0

В указал мне в правильном направлении, что я должен был убедиться, что форма отправляется на https-путь. Тем не менее, я достиг этого, как описано в моем вопросе. Благодарю. –

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