Если у вас нет доступа к веб-серверу, и единственный способ, которым вы располагаете, - перехватить запрос, а затем сделать переадресацию с http на https, какой лучший подход к перенаправлению?В пирамиде, как я могу перенаправить с http на https?
Я пробовал смотреть подписчиков, используя NewRequest. Я сделал что-то вроде этого:
@subscriber(NewRequest) def modify_protocol(event): if re.search('some string', event.request.host_url): event.request.scheme = 'https'
Однако это не делать то, что я ожидал. Страница все еще отображается. Любые идеи были бы хорошы.
Заранее спасибо.
Хороший совет, но ссылки https на странице http так же легко скомпрометированы, как перенаправления. – imsky
Eh. По крайней мере, пользователь достаточно занят, чтобы понять, что они не являются SSL'd и должны нажать на URL. Каждый раз, когда я нажимаю явно указанный URL, я всегда дважды проверяю строку URL. Когда я получаю магическое направление, я просто продолжаю просмотр. Я бы предпочел немного откликнуться и немного поработать над собой, чем получить автоматическое перенаправление и не предлагать эту возможность. Вы можете столкнуться с менеджером среднего звена или «javascript», который делает аргумент о простоте использования для пользователей, но - безопасные сайты лучше, чем клиенты, получающие MITM'd. – synthesizerpatel
Я с вами, но любой текст можно заменить на небезопасной странице, так что всегда существует угроза атаки MITM без какого-либо уведомления пользователя (например, они даже не видят ссылку на обычный текст). HSTS - лучшее, что у нас есть до сих пор, OWASP отказался от рекомендаций против перенаправления, потому что http всегда будет открытым вектором. – imsky