Поиск по сайту:

Chrome отключает автозаполнение небезопасных HTTP-форм на HTTPS-сайтах


Начиная с Chrome 86, Chrome автоматически блокирует автозаполнение форм HTTP. Даже если ваш сайт защищен с помощью HTTPS, если ваши формы не настроены на HTTPS, данные все равно могут передаваться по HTTP.

Проблема и как ее исправить

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

https://www.example.com

На этом сайте у вас может быть форма, подобная следующей, которая принимает некоторые входные данные и сообщения POST в конечную точку.

<form action="/action_page.php" method="post">
  <label for="fname">First name:</label><br>
  <input type="text" id="fname" name="fname"><br>
  <label for="lname">Last name:</label><br>
  <input type="text" id="lname" name="lname">
</form>

Если ваши формы сделаны таким образом, с относительной ссылкой вместо прямой, все в порядке, и форма автоматически отправится на конечную точку HTTPS. В этом случае  https://www.example.com/action_page.php.

Однако если вместо этого вы используете прямую ссылку, например публикуете сообщения на другом субдомене, можно связать небезопасную версию вашего сайта. Эта форма всегда будет отправлять сообщения по URL-адресу HTTP, потому что это то, что ей было сказано.

<form action="http://www.example.com/action_page.php" method="post">
  <label for="fname">First name:</label><br>
  <input type="text" id="fname" name="fname"><br>
  <label for="lname">Last name:</label><br>
  <input type="text" id="lname" name="lname">
</form>

Конечно, исправить очень просто. Просто измените HTTP на HTTPS, и форма будет опубликована правильно.

Если вы хотите проверить свой код на наличие небезопасных конечных точек, вы можете выполнить поиск с помощью Control+F для следующего:

action="http://