В настоящее время у меня есть система входа в систему PHP, которая регистрируется путем аутентификации кода организации, который вводит пользователь, поэтому запрошенная база данных будет отличаться.Как проверить сеанс PHP более безопасным способом?
includes.php
<?php
mysql_connect("mysql.example.com", $dbconn, "MySecurePassword");
mysql_select_db($dbconn);
?>
login.php
// $org is the Organisation Code, will be set when user clicks Login
$dbconn = $org;
include "includes.php";
// Omitted the $userid & $pw variables, assume there is no error, and that MySQL Injection is prevented already
$query = "SELECT * FROM `Login` WHERE `userid`=TRIM('$userid') AND `password`=TRIM('$pw')";
$result = mysql_query($query);
if(mysql_num_rows($result)>0){
session_start();
$_SESSION['logged_in'] = $username;
header("Location: loggedinpage.php");
}
loggedinpage.php
<?php
session_start();
// As there is no fixed database, I've omitted the DB Connection
define('DS', TRUE); // used to protect includes
define('USERNAME', $_SESSION['logged_in']);
define('SELF', $_SERVER['PHP_SELF']);
// Checks if user is logged in
if (!USERNAME) {
header("Location: login.php");
}
?>
Мера безопасности Взятые
Пароли хэшируются с использованием SHA-512 и не сохраняются в открытом тексте.
MySQL инъекции предотвращается с помощью
mysql_real_escape_string()
я пропустил некоторый код для простоты читать, может я знаю, если этот способ проверки, если пользователь вошел в систему является безопасным? Если нет, как я могу его улучшить?
Заранее благодарен!
- Обновленный вопрос, чтобы отразить обновления в комментариях
Это почти как это делается. Вместо «SELECT *» вы можете использовать 'SELECT 1'. Тогда вы не получаете информацию о базе данных, так как вы ее не используете. Также прекратите использование функций 'mysql_', вместо этого перейдите к' mysqli_'. И не забывайте избегать ввода всех пользователей. – Phiter
Одним из основных способов было бы перейти на использование параметризованных запросов. –
Является ли способ обнаружения безопасности пользователя? Благодаря! – Panda