Повышение безопасности при входе в систему с использованием просто файла [закрыто]MySql

Форум по Mysql
Ответить
Anonymous
 Повышение безопасности при входе в систему с использованием просто файла [закрыто]

Сообщение Anonymous »

Я разработал страницу входа в систему, чтобы пользователь мог войти в систему:

1. С именем пользователя и паролем1:
$username = $_POST['username'];
$password1 = password_hash($_POST['password1'], PASSWORD_DEFAULT);
< /code>
2. Использование просто файла (Password2 = извлеченный пароль из файла):
$password2 = hash('sha3-512', $_POST['password2']);
< /code>
Примечание: < /strong> Первый метод - это общий метод, который используется в настоящее время (нет обсуждения этого метода), но второй метод, где вход в систему выполняется с использованием просто файла, он обсуждается. и выполнить проверку. Но во втором методе невозможно сохранить пароль (пароль2) , используя функцию Secure Password_hash , а затем получить к нему доступ без имени пользователя (поскольку у нас просто есть файл). Поэтому я должен сохранить его, используя функцию хэш , чтобы иметь возможность получить к ней доступ. Я полагаю, что второй метод гораздо более безопасен от атак, однако, Мой основной вопрос: < /strong> я все еще хочу, чтобы пароль (пароль2) < /code> во втором методе хранится более надежно и по -прежнему доступен через запрос? ) < /code> получается во втором методе:

< /p>
  • Когда пользователь создает и входит в свою учетную запись, используя имя пользователя < /code> и пароль (пароль1) < /code>, у него есть опция в своей панели для регистрации файла в качестве файла входа. С тех пор они могут войти в свою учетную запись, используя только этот файл, без необходимости имени пользователя < /code> или пароля (пароль1) < /code>.

    < /li>
    Пароль (пароль2) < /code> извлекается из этого файла на стороне клиента и затем сохранено. class = "Snippet-Code">


    document.getElementById("file").addEventListener("change", function (event) {

    const filereader = new FileReader();
    filereader.onload = function () {
    var filedata = filereader.result.split(',')[1];
    const datalength = filedata.length;
    filedata = filedata.slice(Math.round(((datalength * 2) / 9)) - 100, Math.round(((datalength * 2) / 9)) + 100) + filedata.slice(Math.round(((datalength * 5) / 9)) - 100, Math.round(((datalength * 5) / 9)) + 100) + filedata.slice(Math.round(((datalength * 8) / 9)) - 100, Math.round(((datalength * 8) / 9)) + 100);
    if (/^[a-zA-Z0-9+=/]*$/.test(filedata)) {
    console.log(filedata);
    //Sending filedata (password2) via Ajax
    }
    };
    filereader.readAsDataURL(event.target.files[0]);
    });
    < /code>
    < /div>
    < /div>

    Из -за ограничений скорости в Интернете и слабого подключения, не практично загружать файл 3GB (пользователь может выбрать файл носителя любого размера, если он не делает этот файл общедоступным в веб -сайте), а затем извлечь пароль). ) . Поэтому мы выполняем эту операцию на стороне клиента. < /P>


    Подробнее здесь: https://stackoverflow.com/questions/797 ... ust-a-file
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «MySql»