creativecommons.net currently only serves pages over HTTPS; any request coming
in over HTTP is redirected by Apache to HTTPS. Unfortunately this opens a
possible vulnerability: in the event that our DNS is compromised, users who have
used http://creativecommons.net/foo as their OpenID will be vulnerable.
Requirements:
* Existing users may continue to use HTTP (redirected to HTTPS) as their OpenID.
When an existing [legacy] user views their profile, they will see a warning at
the top instructing them to use HTTPS for OpenID, possibly linked to a more
detailed discussion page.
* New users will only be able to use HTTPS (with no redirect) for OpenID logins.
* We'll need to send an email to all existing users notifying them of the change
and suggesting they only use HTTPS for their OpenID logins.
Discussion:
* This will require a schema change for
commoner.profiles.models.CommonerProfile; redirect_https bool
* We will probably want to start passing all requests -- HTTP and HTTPS into
Django.
* Requests coming into commoner.profiles.views.view will be checked: if
profile.redirect_https == True and the request was not made over HTTPS, the view
will return a redirect.
* When rendering the profile, if the request is made over HTTP, no OpenID header
information will be included
* We don't currently have an "email all users" facility but it should be trivial
to build.
|