Джанго назвал URL-адреса и HTTPS / SSL - PullRequest
4 голосов
/ 10 февраля 2011

В настоящее время я работаю над защитой своего сайта Django с помощью SSL. Мне бы хотелось, чтобы определенные шаблоны URL были доступны только через HTTPS. Единственное, что нужно сделать, это обеспечить безопасность входа на сайт. Существует эта форма, где пользователь вводит свой логин / пароль в форму, и форма отправляется на сервер. В шаблоне страницы входа у меня есть что-то вроде

<form method="POST" action="{% url login %}">

а в моем urls.py один из паттернов что-то вроде

    url(r'^login/$', 'mySiteLogin', name='login'),

Теперь я нашел некоторые ресурсы, предлагающие мне использовать промежуточное ПО, которое переписывает http в https, например, это: Относительные URL-адреса Django и https . Но вход в систему не может быть выполнен таким образом - бесполезно переписывать протокол, когда пользователь уже разместил свой пароль в текстовом виде!

Так что я думаю, могу ли я как-то сказать {% url %} использовать https? Я имею в виду решение, которое будет использовать декоратор для пометки представлений, которые требуют шифрования, а затем какой-то тег, подобный {% url %}, будет использовать эту информацию и создаст ссылку с https, когда потребуется.

Или есть какой-то другой способ?

Спасибо

Mike

Ответы [ 2 ]

3 голосов
/ 10 февраля 2011

Но вход в систему не может быть сделан таким образом - бесполезно переписывать протокол, когда пользователь уже разместил пароль в текстовом виде!

Просто откройте страницу входа через HTTPS. В общем, это хорошая идея.

«К 5 января стало ясно, что пароли всей страны были в процессе кражи прямо посреди величайшего политический переворот в двух десятилетия ». Вот почему вы не должны обслуживать вашу форму входа через HTTP даже хотя он ставит поверх HTTPS.

http://simonwillison.net/2011/Jan/24/

Короче говоря, провайдеры из Туниса внедрили вредоносный код JavaScript в страницы входа Facebook, чтобы украсть логины пользователей.

0 голосов
/ 11 февраля 2011

Может быть, вам стоит взглянуть на промежуточные программные решения, которые выполняют перенаправление между HTTP и HTTPS. Один пример: http://djangosnippets.org/snippets/85/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...