Как я могу вынудить пользователей получить доступ к моей странице по HTTPS вместо HTTP?

Указатель NULL - это тот, который указывает на никуда. Когда вы разыскиваете указатель p, вы говорите «дайте мне данные в месте, хранящемся в« p ». Когда p является нулевым указателем, местоположение, хранящееся в p, является nowhere, вы говорите «Дайте мне данные в месте« нигде ». Очевидно, он не может этого сделать, поэтому он выбрасывает NULL pointer exception.

В общем, это потому, что что-то не было правильно инициализировано.

133
задан 9 revs, 6 users 45%Wiki 6 April 2017 в 10:14
поделиться

5 ответов

Путем я сделал это, прежде чем в основном будет похож на то, что Вы записали, но не имеете никаких значений hardcoded:

if($_SERVER["HTTPS"] != "on")
{
    header("Location: https://" . $_SERVER["HTTP_HOST"] . $_SERVER["REQUEST_URI"]);
    exit();
}
172
ответ дан 24 November 2019 в 00:00
поделиться

Не смешивайте HTTP и HTTPS на той же странице. Если у Вас есть страница формы, которая подана через HTTP, я собираюсь быть озабоченным отправляющими данными - я не вижу, пробегается ли отправление через HTTPS или HTTP, не делая Источника Представления и ища для него.

Подавание формы по HTTPS наряду с отправлять ссылкой не состоит в том что тяжело изменение для преимущества.

1
ответ дан 24 November 2019 в 00:00
поделиться

Вы могли сделать это с директивой и mod_rewrite на Apache:

<Location /buyCrap.php>
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}
</Location>

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

45
ответ дан 24 November 2019 в 00:00
поделиться

Использовать $_SERVER['HTTPS'] сказать, является ли это SSL и перенаправление к правильному месту если нет.

И помните, страница, которая отображает форму, не должна питаться через HTTPS, это - сообщение назад URL, которому нужен он больше всего.

Править: да, как указан ниже, лучше иметь весь процесс в HTTPS. Это намного больше заверяет - что я указывал, что сообщение является самой критической частью. Кроме того, необходимо заботиться, что любые cookie установлены быть безопасными, таким образом, они будут только отправлены через SSL. mod_rewrite решение также очень изящно, я использовал его для обеспечения большого количества приложений на моем собственном сайте.

3
ответ дан 24 November 2019 в 00:00
поделиться

Вы не были должны из соображений безопасности. Особенно, если cookie находятся в игре здесь. Это оставляет Вас широко открытыми для основанных на cookie атак с повторением пакетов.

Так или иначе, необходимо использовать правила управления Apache настроить его.

Затем можно протестировать на включаемый HTTPS и перенаправление по мере необходимости при необходимости.

необходимо перенаправить к странице платы только с помощью ФОРМЫ POST (не добираются), и доступы к странице без POST должны быть направлены назад к другим страницам. (Это поймает людей просто горячий переход.)

http://joseph.randomnetworks.com/archives/2004/07/22/redirect-to-ssl-using-apaches-htaccess/

Является хорошим местом для запуска, извинения за то, что не обеспечили больше. Но Вы действительно должны толчок все через SSL.

Это является защитным, но по крайней мере у Вас есть меньше забот.

0
ответ дан 24 November 2019 в 00:00
поделиться
Другие вопросы по тегам:

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