Как вызвать использование SSL для некоторого URL моего Django Application?

Локальная Система не рекомендуется, это - администратор эквивалентная учетная запись и таким образом может привести к сомнительному кодированию, которое использует в своих интересах права администратора, которые не были бы позволены в производственной системе начиная с безопасности, сознательным Администраторам/DBA действительно не нравится выполнять сервисы как, администратору.

В зависимости от того, если экземпляр сервера должен будет получить доступ к другим доменным ресурсам или не должен определить, под каким типом низкой учетной записи полномочия он должен работать.

, Если это не должно получать доступ ни к каким (неанонимным) доменным ресурсам, чем, я обычно создаю уникальное локальное, низкое полномочие, составляют его для выполнения под тем, для получения дополнительной выгоды безопасности от не наличия многочисленных услуг, работающих в том же контексте идентификационных данных. знать, что учетная запись Локальной службы не поддерживается для сервисов SQL Server Agent или SQL Server Agent.

, Если это действительно должно получить доступ к неанонимным доменным ресурсам тогда, у Вас есть три опции:

  1. Выполнение как [1 112] Сетевая служба , который является также низкой учетной записью полномочия, но тот, который сохраняет компьютерные учетные данные сети.
  2. Выполнение при Выполнении Учетной записи
  3. Локальной службы под пользовательской учетной записью домена с низкими локальными полномочиями. Одно преимущество для выполнения в соответствии с учетной записью разработчиков состоит в том, что легче присоединить отладчики к процессам в Ваших собственных идентификационных данных, не ставя под угрозу безопасность, настолько отлаживающую, легче (так как неадминистратор считает, не имеют полномочия присоединить отладчик к другому процессу идентификационных данных по умолчанию). Недостаток к использованию другой учетной записи домена является издержками управления теми учетными записями, тем более, что каждый сервис для каждого разработчика должен идеально иметь уникальные учетные данные, таким образом, у Вас нет утечек, если разработчик должен был уехать.

Большая часть того, что я склонен делать, не требует сервиса к ресурсам домена доступа, таким образом, я склонен использовать уникальные локальные низкие учетные записи полномочия, которыми я управляю. Я также работаю исключительно как неадминистраторский пользователь (и сделали так под XP SP2, Сервер 2003, Vista и Сервер 2008 без основных проблем), поэтому, когда у меня есть случаи, где мне нужен сервис к ресурсам домена доступа тогда у, меня нет беспокойства об использовании моих собственных доменных учетных данных (плюс тот способ, которым я не должен волновать сетевых администраторов по поводу создания/поддержания набора непроизводственных идентификационных данных домена).

11
задан Community 23 May 2017 в 11:54
поделиться

3 ответа

Jpeg doesn't support transparency

у вас будет один файл сценария Django WSGI и файл настроек. Вам просто нужно продублировать установку приложения, как описано в конфигурации Apache / mod_wsgi.

11
ответ дан 3 December 2019 в 04:33
поделиться

Помимо использования mod_rewrite, вы также можете использовать Django для управления перенаправлениями SSL.

Вот модифицированная версия промежуточного программного обеспечения из Satchmo Project . Мне этот метод нравится больше, чем mod_rewrite, так как им легче управлять.

Чтобы использовать его, введите 'SSL': True в свой URL-адрес:


    urlpatterns = patterns('some_site.some_app.views',
        (r'^test/secure/$','test_secure',{'SSL':True}),
    )

Вот код промежуточного программного обеспечения:


    from django.conf import settings
    from django.http import HttpResponseRedirect, get_host

    SSL = 'SSL'

    def request_is_secure(request):
        if request.is_secure():
            return True

        # Handle forwarded SSL (used at Webfaction)
        if 'HTTP_X_FORWARDED_SSL' in request.META:
            return request.META['HTTP_X_FORWARDED_SSL'] == 'on'

        if 'HTTP_X_SSL_REQUEST' in request.META:
            return request.META['HTTP_X_SSL_REQUEST'] == '1'

        return False

    class SSLRedirect:
        def process_request(self, request):
            if request_is_secure(request):
                request.IS_SECURE=True
            return None

        def process_view(self, request, view_func, view_args, view_kwargs):          
            if SSL in view_kwargs:
                secure = view_kwargs[SSL]
                del view_kwargs[SSL]
            else:
                secure = False

            if settings.DEBUG:
                return None

            if getattr(settings, "TESTMODE", False):
                return None

            if not secure == request_is_secure(request):
                return self._redirect(request, secure)

        def _redirect(self, request, secure):
            if settings.DEBUG and request.method == 'POST':
                raise RuntimeError(
                """Django can't perform a SSL redirect while maintaining POST data.
                    Please structure your views so that redirects only occur during GETs.""")

            protocol = secure and "https" or "http"

            newurl = "%s://%s%s" % (protocol,get_host(request),request.get_full_path())

            return HttpResponseRedirect(newurl)

10
ответ дан 3 December 2019 в 04:33
поделиться

Мы использовали простое промежуточное ПО для проверки URL-адресов по списку базовых URL-адресов, которые должны находиться в режиме HTTPS, все остальные принудительно переводятся в режим HTTP. Большое предостережение здесь в том, что любые данные POST могут быть потеряны, если вы не проявите особую осторожность (в нашем случае это не имело значения). Мы делали это на страницах присоединения, на которых требовались номера кредитных карт и т.п., поэтому, как только они попали в конвейер, мы принудительно использовали HTTPS.

0
ответ дан 3 December 2019 в 04:33
поделиться
Другие вопросы по тегам:

Похожие вопросы: