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://