Я предложил другое решение ранее, но я думал, что вы собираетесь справиться с этим на стороне клиента.После ваших комментариев я теперь понимаю, что вам нужно позаботиться об этом на стороне сервера.Для вас может быть способ сделать это, который не очень элегантный, но он должен работать:
Добавьте на все страницы скрипт, который собирает все имена полей пароля в новое поле, сгенерированное клиентом, например, так::
function collectPasswordFields() {
var inputs = document.getElementsByTagName('input'), list = [];
for (var i = 0; i < inputs.length; ++i)
if (inputs[i].type == 'password') list.push(inputs[i].name);
var field = document.createElement('input');
field.name = '__password_fields';
field.value = list.join(',');
document.getElementsByTagName('form')[0].appendChild(field);
}
Затем перехватите дополнительное поле в обработчике ошибок на стороне сервера и удалите именованные поля из электронного письма.
Может ли что-то подобное работать для вас?