quinta-feira, 12 de agosto de 2010

ADMIN SEGURO COM SENHA, TECLADO VIRTUAL E MULTI-USUÁRIO

ADMIN SEGURO COM SENHA, TECLADO VIRTUAL E MULTI-USUÁRIO

Esta contribuição é uma versão melhorada da que fiz anteriormente para colocar senha e login no admin, porém com
siginificativas mudanças:

* Possibilidade de cadastrar administradores com senha e login individuais.

* Teclado Virtual estilo Caixa Econômica Fedreal para digitação dos dados com segurança.

* Logout seguro, apaga a sessão, evitando que alguém entre na administração logo após você sair sem precisar digitar login e senha.

* Desloga automaticamente após inatividade, diminuindo a possibilidade de aguém entrar no sistema se após você ter logado vier a se

ausentar da frente do computador.


PARA BAIXAR O PACOTE COMPLETO COM INSTRUÇÕES E SCREEN SHOTS acessse
http://addons.oscommerce.com/info/5656

INSTRUÇÕES PARA A INSTALAÇÃO:


/////////////////////////////////////////////////////////////////////

1- Sempre Faça backup de seus arquivos e banco de dados antes.

/////////////////////////////////////////////////////////////////////

2-Execute no PHPMyAdmin ou correspondente o conteúdo do arquivo "tabelaadmin.txt"

/////////////////////////////////////////////////////////////////////

3- Copie para dentro do diretório admin todo o conteúdo da pasta "admin" desta contribuição
(fique tranquilo,pois não irá não irá sobrescrever nada).

/////////////////////////////////////////////////////////////////////

4- no arquivo admin/includes/filename.php inclua:

define('FILENAME_ADMINISTRATORS', 'administrators.php');

define('FILENAME_LOGIN', 'login.php');

/////////////////////////////////////////////////////////////////////

5- no arquivo admin/includes/database_tables.php inclua:

define('TABLE_ADMINISTRATORS', 'administrators');


/////////////////////////////////////////////////////////////////////

6- no arquivo admin/includes/application_top.php:

logo após:


$language = $lng->language['directory'];

$languages_id = $lng->language['id'];
}

inclua:


// redirecionamento para apágina de login se o administrador estiver deslogado

if (!tep_session_is_registered('admin')) {
$redirect = false;

$current_page = basename($PHP_SELF);


if ($current_page != FILENAME_LOGIN) {

if (!tep_session_is_registered('redirect_origin')) {
tep_session_register('redirect_origin');

$redirect_origin = array('page' => $current_page,

'get' => $HTTP_GET_VARS);
}

$redirect = true;

}

if ($redirect == true) {

tep_redirect(tep_href_link(FILENAME_LOGIN));
}

unset($redirect);


/////////////////////////////////////////////////////////////////////

7 - no arquivo admin/includes/functions/general.php:

Logo após:


function tep_redirect($url) {

global $logger;

inclua:


if ( (strstr($url, "\n") != false) || (strstr($url, "\r") != false) ) {

tep_redirect(tep_href_link(FILENAME_DEFAULT, '', 'NONSSL', false));
}

/////////////////////////////////////////////////////////////////////

8 - no arquivo admin/includes/functions/sessions.php:

Logo após:


if ($total['total'] > 0) {


inclua:


global $HTTP_GET_VARS, $HTTP_POST_VARS, $HTTP_COOKIE_VARS;


$sane_session_id = true;


if (isset($HTTP_GET_VARS[tep_session_name()])) {

if (preg_match('/^[a-zA-Z0-9]+$/', $HTTP_GET_VARS[tep_session_name()]) == false) {
unset($HTTP_GET_VARS[tep_session_name()]);

$sane_session_id = false;

}
} elseif (isset($HTTP_POST_VARS[tep_session_name()])) {
if (preg_match('/^[a-zA-Z0-9]+$/', $HTTP_POST_VARS[tep_session_name()]) == false) {
unset($HTTP_POST_VARS[tep_session_name()]);

$sane_session_id = false;

}
} elseif (isset($HTTP_COOKIE_VARS[tep_session_name()])) {
if (preg_match('/^[a-zA-Z0-9]+$/', $HTTP_COOKIE_VARS[tep_session_name()]) == false) {
$session_data = session_get_cookie_params();

setcookie(tep_session_name(), '', time()-42000, $session_data['path'], $session_data['domain']);


$sane_session_id = false;

}
}

if ($sane_session_id == false) {

tep_redirect(tep_href_link(FILENAME_DEFAULT, '', 'NONSSL', false));
}

/////////////////////////////////////////////////////////////////////

9 - No início de admin/includes/header.php,
depois de




inclua:


include_once("AdminNavigation.php");


++++++++++++++++++++++++++++++++++++++++++++++++++ ++++++++++++++++++++++++

PRONTO, SE FEZ TUDO DIREITINHO ATÉ AQUI DEVE FUNCIONAR...

NOTA: Pode ser que haja alguma pequena diferença entre as linhas citadas nas instruções e a que você vai encontrar na sua loja, fique atento á isto.


NOTA2: O CÓDIGO DO TECLADO ESTÁ CRIPTOGRAFADO POR QUESTÕES DE SEGURANÇA.

Um comentário:

  1. Boa noite Rodrigo, parabéns por esse tutorial, só que na linha 9 faltou dados, veja:

    9 - No início de admin/includes/header.php,
    depois de



    inclua:

    include_once("AdminNavigation.php");

    ResponderExcluir