2015-04-15 2 views
0

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

<?php 
session_start(); 

     include 'login/config.php'; 

     if(!isset($_SESSION['username'])){ 
      header('location:login/index.php'); 
      exit(); 
     } 


?> 

Я чувствую, что могут быть лучшие способы сделать это, а также более безопасные способы. Имя пользователя и пароль должны войти в систему и перейти на начальную панель мониторинга и уровни статуса пользователя. & Разрешения будут добавлены позже.

ВОПРОСЫ ::

Как я могу сделать систему более безопасной за счет улучшения кода или добавления дополнительных функций безопасности?

И

Как я могу войти в свою базу данных SQL, когда пользователь входит в систему и из системы администратора?

ответ

0

Что касается безопасности, я не эксперт, поэтому я предпочел бы подождать и посмотреть, что говорят вам другие люди, поскольку это очень интересная тема. Но я все равно дам вам свои мысли.

Прежде всего, вы должны позаботиться о SQL-инъекциях при входе в систему, всегда проверять входные данные от пользователей, особенно на CRUD-операции. Я думаю, что защита ваших страниц с сеансами должна быть достаточно хорошей, если логин сам по себе безопасен, например, вы могли бы реализовать систему, которая блокировала бы IP после нескольких неудачных попыток входа в систему и т. Д.

О втором part, вы можете создать таблицу, то есть userlog, которая будет содержать нужные поля, user_id, action(login/logout), time. Затем каждый раз, когда пользователь выполняет вход/выход из системы, вы просто вставляете новую запись в таблицу. Этот фрагмент кода будет расположен там, где вы установите/отключите сеанс. Не уверен в эффективности этого метода, но это способ реализовать то, что вы говорите.

+0

спасибо за отзыв, у меня есть таблица в базе данных под названием «eventlogs», и в системе есть много компонентов, для которых потребуется вести журнал, однако основной из них - вход в систему и изначально, поля - это событие имя, событие пользователя, категорию события и использование текущей функции временной метки, она также записывает время журнала – DGTLSS

+0

. Не могли бы вы узнать, как изменить мой код выше, чтобы, если у них нет требуемого уровня пользователя, для например, Менеджер, тогда они не могут получить доступ к странице? У меня есть поле в базе данных с уровнями разрешений, но вызов его для использования оказывается затруднительным. – DGTLSS

+0

Вы сохраняете «имя пользователя» в сеансе, поэтому, если это поле «уникально» в вашей базе данных, вы можете создать запрос и выбрать группу пользователей этого пользователя, а затем проверить его на доступ или не на странице, вы проверяете, установлен ли сеанс. Вы всегда можете сохранить 'user_id' вместо имени пользователя, что имеет больше смысла для меня. Или вы также можете сохранить группу пользователей в сеансе, но лучше всего сохранить данные сеанса. Дай мне знать, если бы я был достаточно ясен! – ruuux93

0

вы можете создать таблицу типа login_history, у которых есть поле loginTime и logoutTime в соответствии с системным временем. Когда пользователь вводит логин, loginTime вставлен и когда он выходит из записи, обновляется с logoutTime.