Безопасна ли моя форма? - PullRequest
       14

Безопасна ли моя форма?

0 голосов
/ 16 сентября 2009

У меня есть 4 шага формы.

  1. form.php
  2. validation.php
  3. review.php
  4. complete.php

Form.php отправляет файл validate.php, который в зависимости от проверки перенаправляет обратно в form.php или review.php. Последний шаг завершен. Php

Каждая страница вызывается с HTTPS, за исключением validate.php, в котором создаются переменные SESSION, а затем перенаправляется обратно в form.php или review.php, вызывая https.

Блокировка браузера никогда не исчезает, но мне сказали, что если вы отправляете по относительному пути (без явного вызова https), форма не защищена.

Это правда? Я в безопасности? Есть ли способ проверить и / или доказать, что процесс формы защищен или нет?

Кто-то говорит мне, что это безопасно, но я просто хочу быть уверен, поэтому я не несу ответственности.

Я использую относительный путь в посте формы, потому что переменные SESSION не создаются, когда страница вызывается явно с HTTPS. Если у кого-то есть потенциальное решение для этого, это было бы также хорошо.

Ответы [ 4 ]

6 голосов
/ 16 сентября 2009

Даже если вы явно не публикуете, например, https://your -server.com / validate.php , вы используете относительную ссылку (например, action = "validate.php") означает, что он все еще использует HTTPS на каждом этапе.

Краткий ответ - протокол не изменяется для относительных ссылок. Поэтому, если form.php не является HTTPS, переменные формы не будут отправлены в защищенном режиме с относительной ссылкой.

2 голосов
/ 16 сентября 2009

Блокировка в браузере никогда не исчезает но мне сказали, если вы отправите сообщение родственнику путь (без явного вызова https) форма не защищена.

Это мусор. Относительный URI является относительным URI и не вызывает изменений в протоколе.

Если страница была запрошена через HTTPS, а URI относительный, то в следующем запросе также будет использоваться HTTPS.

Я использую относительный путь в форме сообщения потому что переменные SESSION не созданы когда страница вызывается явно с HTTPS

Вы, должно быть, неправильно диагностируете проблему. Браузеры внутренне разрешают относительные URI в абсолютные URI. В отправленных данных нет никакой разницы.

1 голос
/ 16 сентября 2009

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

Ничто из этого не означает, что ваша страница защищена. Это означает, что отправляемые данные шифруются. У вас все еще могут быть некоторые проблемы (слабые пароли, SQL-инъекция, межсайтовый скриптинг и т. Д.), С которыми вам придется иметь дело даже при использовании HTTPS для передачи данных. Если вы используете HTTPS, по крайней мере, ваши данные будут гораздо сложнее перехватить или подделать.

1 голос
/ 16 сентября 2009

Можно использовать относительные пути. Чтобы убедиться, что вы можете использовать приложение просмотра сетевых пакетов, чтобы проверить, зашифровано ли содержимое. Однако одна вещь касается меня в вашем коде: храните ли вы проверенные данные в переменных сеанса? Если это так, вы уверены, что никто не может получить доступ к значениям сеанса, кроме пользователя root и php. Я бы рекомендовал хранить проверенные значения в базе данных на всякий случай, вы всегда можете удалить устаревшие записи с помощью crontab.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...