私は現在SSLでDjangoのWebサイトを保護しています。私は特定のURLパターンをHTTPS経由でしかアクセスできないようにしたいと思います。最も重要なことは、ログインサイトを保護することです。このフォームでは、ユーザーがログイン/パスワードをフォームに入力し、フォームがサーバーにPOSTされます。ログインページのテンプレートでは、私はDjangoという名前のURLとHTTPS/SSL
<form method="POST" action="{% url login %}">
やパターンの私のurls.py
1は、今私は、私はその意志のミドルウェアを使用する必要があることを示唆しているいくつかのリソースを見つけた
url(r'^login/$', 'mySiteLogin', name='login'),
のようなものであるのようなものを持っていますhttp
をhttps
に書き換えます。たとえば、Django relative urls and httpsです。しかし、このようにログインすることはできません。ユーザーがすでにパスワードをプレーンテキストで投稿したときに、プロトコルを書き換えるのは無駄です!
だから私はどういうわけか{% url %}
にhttps
を使用するように指示できますか?私は、デコレータを使用して暗号化が必要なビューをマークし、{% url %}
のようなタグでこの情報を使用し、必要に応じてhttps
のリンクを作成するソリューションを考えています。
他にもありますか?
おかげで、
マイク
あなたの '{%url%}'タグは、プロトコルとドメイン、およびパスを出力していますか?例えば。 'https:// yourdomain.com/login /'を出力しますか?私はそれがそのように使われることを意図しているとは思わないからです。 –
元のDjangoタグは、URLの絶対パスのみを出力するので、ドメインもプロトコルもありません。しかし、私は両方を出力し、必要に応じてプロトコルをhttpsに変更したいと思います。 – Jasiu