2016-08-02 6 views
1

Что нового в безопасности и интересно, насколько безопасен этот тип входа? Я не защищаю любые банковские/финансовые данные любыми способами, но пытаюсь обеспечить несколько конфиденциальных данных, которые не должны подвергаться широкой публике. Мне нужен только пароль - никаких официальных логинов не сделано.sha256 с сеансом PHP

Это файл с именем access.php, в котором находится поле ввода пароля.

<?php 
session_start(); 
if (!isset($_SESSION['loggedIn'])) { 
    $_SESSION['loggedIn'] = false; 
} 

// sha256() password 
$password = '13d249f2cb4127b40cfa757866850278793f814ded3c587fe5889e889a7a9f6c'; 

if (isset($_POST['password'])) { 
    if (hash('sha256',$_POST['password']) == $password) { 
     $_SESSION['loggedIn'] = true; 
    } else { 
     die ('That is the incorrect password - Please leave now'); 
    } 
} 

if (!$_SESSION['loggedIn']): 
?> 

Тогда мой index.php требует access.php при загрузке страницы. Должен ли доступ жить вне общедоступного каталога? Я пропустил что-нибудь еще, о чем я должен был подумать?

+3

[password_hash()] (http://php.net/manual/en/function.password-hash.php) - лучшая практика для хэширования и проверки паролей в PHP –

ответ

4

Новое в безопасности и интересно, насколько безопасен этот тип входа?

  1. SHA-256: Вы используете полностью неправильный инструмент для работы. Используйте password_hash() и password_verify():
  2. Кроме того, SHA-256 является уязвимым для length-extension attacks.
  3. Использование == для сравнения хэшей имеет две уязвимости:

Таким образом, чтобы ответить на ваш вопрос: Не очень. Проблема, которую ваш код пытается решить, хорошо известна среди экспертов по безопасности, и они ушли с пути, чтобы сделать ее простой, чтобы другие могли ее решить. Вот почему существуют password_hash() и password_verify(). Используй их.

Это, пожалуйста, добро пожаловать в обеспечение безопасности программного обеспечения. Если вам нужны дополнительные ресурсы, чтобы помочь вашему самообразованию, ознакомьтесь с этим application security reading list on Github.

Смежные вопросы