Bem-vindo(a) ao PORTAL X-TRAD
PORTAL X-TRAD  
Horários baseados na GMT -2. Agora são 04:05 AM.
 »   PORTAL X-TRAD » Porta de Entrada » Tutoriais XOOPS

Tutoriais XOOPS Divulgue seus tutoriais ou de outras fontes, citando-as, é claro, aqui.

Resposta
 
LinkBack Ferramentas do Tópico Modos de Exibição
Antigo 09-11-2007, 05:25 PM
Webmaster
 
Avatar de beduino
 
Registrado em: Dec 2005
Localização: rio de janeiro
Idade: 51
Postagens: 2,067
Entradas no Blog: 2
Thanks: 56
Thanked 30 Times in 21 Posts
Reputação: 10 @ 161
beduino has a spectacular aura aboutbeduino has a spectacular aura about
Enviar mensagem via Windows Live Messenger para beduino
Arrow Tutorial Parte III [XFACIL] Segurança - Protegendo o mainfile

NOTA INICIALExiste mais de uma forma de proteger o mainfile: foi escolhida a mais simples. Não deixe de procurar informações sobre outras formas de incrementar a proteção do seu site!


Parte III: Protegendo o mainfile.php
Relembrando...

O mainfile.php é o arquivo que guarda toda a informação essencial do seu site, incluídas aí a senha e nome do usuário do seu banco de dados. E o nome do banco de dados, e o path [caminho físico] do seu site! Se você percebeu, ao editá-lo para instalar o protector, uma boa parte do que existe de fundamental a ser protegido está ali.E todos que já operaram com XOOPS SABEM que o mainfile está na raiz do seu site. Ou deveria estar. Mais uma razão para nos perguntarmos ... que tal tirar o mainfile da possibilidade de ser acessado pela WEB?

Movendo o mainfile
Na verdade é muito simples... Faça uma cópia do seu arquivo mainfile.php usado no site, e coloque essa cópia para a pasta 'xtrustpath'[veja Parte II].
Depois, substitua todo o conteúdo do mainfile.php original por :


Código PHP:
<?php require_once('/caminho/xtrustpath/mainfile.php'?>
Assim o mainfile.php que fica no xoops vai servir apenas como atalho para buscar o "verdadeiro" mainfile ... que está fora da web! Simples não?

'Evolução' de um mainfile.php de exemplo: abaixo os detalhes...

Usaremos para esse exemplo um site que está hospedado em um servidor com cPanel:
O login do cPanel será : seulogincpanel ;
Banco de Dados: nome: nomebd ;
Usuário e senha desse banco de dados: nomeusuariobd e senhausuariobd;
Path: /home/seulogincpanel/public_html
O site é: http://meusite.com.br

Mainfile antes de qualquer alteração - fizemos a instalação normal do XOOPS e ele está assim:

Código PHP:
if ( !defined("XOOPS_MAINFILE_INCLUDED") ) {
define("XOOPS_MAINFILE_INCLUDED",1); // XOOPS Physical Path
// Physical path to your main XOOPS directory WITHOUT trailing slash
// Example: define('XOOPS_ROOT_PATH', '/home/daeqhos/public_html');
define('XOOPS_ROOT_PATH''/home/seulogincpanel/public_html');
 
// XOOPS Virtual Path (URL)
// Virtual path to your main XOOPS directory WITHOUT trailing slash
// Example: define('XOOPS_URL', 'http://meusite.com.br');
define('XOOPS_URL''http://meusite.com.br'); 
define('XOOPS_CHECK_PATH'1);
 
// Protect against external scripts execution if safe mode is not enabled
if ( XOOPS_CHECK_PATH && !@ini_get('safe_mode') ) {
if ( 
function_exists('debug_backtrace') ) {
$xoopsScriptPath debug_backtrace();
if ( !
count($xoopsScriptPath) ) {
die(
"XOOPS path check: this file cannot be requested directly");
}
$xoopsScriptPath $xoopsScriptPath[0]['file'];
} else {
$xoopsScriptPath = isset($_SERVER['PATH_TRANSLATED']) ? $_SERVER['PATH_TRANSLATED'] : $_SERVER['SCRIPT_FILENAME'];
}
if ( 
DIRECTORY_SEPARATOR != '/' ) {
// IIS6 may double the \ chars
$xoopsScriptPath str_replacestrpos$xoopsScriptPath'\\\\') ? '\\\\' DIRECTORY_SEPARATOR'/'$xoopsScriptPath);
}
if ( 
strcasecmpsubstr($xoopsScriptPath0strlen(XOOPS_ROOT_PATH)), str_replaceDIRECTORY_SEPARATOR'/'XOOPS_ROOT_PATH)) ) {
exit(
"XOOPS path check: Script is not inside XOOPS_ROOT_PATH and cannot run.");
}
// Database
// Choose the database to be used
define('XOOPS_DB_TYPE''mysql'); // Table Prefix
// This prefix will be added to all new tables created to avoid name conflict in the database. If you are unsure, just use the default 'xoops'.
define('XOOPS_DB_PREFIX''xoops'); // Database Hostname
// Hostname of the database server. If you are unsure, 'localhost' works in most cases.
define('XOOPS_DB_HOST''localhost'); // Database Username
// Your database user account on the host
define('XOOPS_DB_USER''seulogincpanel_nomedousuariobd'); // Database Password
// Password for your database user account
define('XOOPS_DB_PASS''senhausuariobd'); // Database Name
// The name of database on the host. The installer will attempt to create the database if not exist
define('XOOPS_DB_NAME''nomebd'); // Use persistent connection? (Yes=1 No=0)
// Default is 'Yes'. Choose 'Yes' if you are unsure.
define('XOOPS_DB_PCONNECT'0); define('XOOPS_GROUP_ADMIN''1');
define('XOOPS_GROUP_USERS''2');
define('XOOPS_GROUP_ANONYMOUS''3'); foreach ( array('GLOBALS''_SESSION''HTTP_SESSION_VARS''_GET''HTTP_GET_VARS''_POST''HTTP_POST_VARS''_COOKIE''HTTP_COOKIE_VARS''_REQUEST''_SERVER''HTTP_SERVER_VARS''_ENV''HTTP_ENV_VARS''_FILES''HTTP_POST_FILES''xoopsDB''xoopsUser''xoopsUserId''xoopsUserGroups''xoopsUserIsAdmin''xoopsConfig''xoopsOption''xoopsModule''xoopsModuleConfig''xoopsRequestUri') as $bad_global ) {
if ( isset( 
$_REQUEST[$bad_global] ) ) {
header'Location: '.XOOPS_URL.'/' );
exit();
}

if (!isset(
$xoopsOption['nocommon']) && XOOPS_ROOT_PATH != '') {
include 
XOOPS_ROOT_PATH."/include/common.php";
} }
?> 

Com todas as alterações: XOOPS_TRUS_PATH criado como pasta 'aleluia' FORA da WEB...

Código PHP:
<?php
 
if ( !defined("XOOPS_MAINFILE_INCLUDED") ) {
define("XOOPS_MAINFILE_INCLUDED",1); // XOOPS Physical Path
// Physical path to your main XOOPS directory WITHOUT trailing slash
// Example: define('XOOPS_ROOT_PATH', '/home/daeqhos/public_html');
define('XOOPS_ROOT_PATH''/home/seulogincpanel/public_html');
// definindo o XOOPS_TRUST_PATH - basico para o protector
define('XOOPS_TRUST_PATH','/home/seulogincpanel/aleulia');
// XOOPS Virtual Path (URL)
// Virtual path to your main XOOPS directory WITHOUT trailing slash
// Example: define('XOOPS_URL', 'http://meusite.com.br');
define('XOOPS_URL''http://meusite.com.br'); define('XOOPS_CHECK_PATH'1);
// Protect against external scripts execution if safe mode is not enabled
if ( XOOPS_CHECK_PATH && !@ini_get('safe_mode') ) {
if ( 
function_exists('debug_backtrace') ) {
$xoopsScriptPath debug_backtrace();
if ( !
count($xoopsScriptPath) ) {
die(
"XOOPS path check: this file cannot be requested directly");
}
$xoopsScriptPath $xoopsScriptPath[0]['file'];
} else {
$xoopsScriptPath = isset($_SERVER['PATH_TRANSLATED']) ? $_SERVER['PATH_TRANSLATED'] : $_SERVER['SCRIPT_FILENAME'];
}
if ( 
DIRECTORY_SEPARATOR != '/' ) {
// IIS6 may double the \ chars
$xoopsScriptPath str_replacestrpos$xoopsScriptPath'\\\\') ? '\\\\' DIRECTORY_SEPARATOR'/'$xoopsScriptPath);
}
if ( 
strcasecmpsubstr($xoopsScriptPath0strlen(XOOPS_ROOT_PATH)), str_replaceDIRECTORY_SEPARATOR'/'XOOPS_ROOT_PATH)) ) {
exit(
"XOOPS path check: Script is not inside XOOPS_ROOT_PATH and cannot run.");
}
// Database
// Choose the database to be used
define('XOOPS_DB_TYPE''mysql'); // Table Prefix
// This prefix will be added to all new tables created to avoid name conflict in the database. If you are unsure, just use the default 'xoops'.
define('XOOPS_DB_PREFIX''xoops'); // Database Hostname
// Hostname of the database server. If you are unsure, 'localhost' works in most cases.
define('XOOPS_DB_HOST''localhost'); // Database Username
// Your database user account on the host
define('XOOPS_DB_USER''seulogincpanel_nomedousuariobd'); // Database Password
// Password for your database user account
define('XOOPS_DB_PASS''senhausuariobd'); // Database Name
// The name of database on the host. The installer will attempt to create the database if not exist
define('XOOPS_DB_NAME''nomebd'); // Use persistent connection? (Yes=1 No=0)
// Default is 'Yes'. Choose 'Yes' if you are unsure.
define('XOOPS_DB_PCONNECT'0); define('XOOPS_GROUP_ADMIN''1');
define('XOOPS_GROUP_USERS''2');
define('XOOPS_GROUP_ANONYMOUS''3'); foreach ( array('GLOBALS''_SESSION''HTTP_SESSION_VARS''_GET''HTTP_GET_VARS''_POST''HTTP_POST_VARS''_COOKIE''HTTP_COOKIE_VARS''_REQUEST''_SERVER''HTTP_SERVER_VARS''_ENV''HTTP_ENV_VARS''_FILES''HTTP_POST_FILES''xoopsDB''xoopsUser''xoopsUserId''xoopsUserGroups''xoopsUserIsAdmin''xoopsConfig''xoopsOption''xoopsModule''xoopsModuleConfig''xoopsRequestUri') as $bad_global ) {
if ( isset( 
$_REQUEST[$bad_global] ) ) {
header'Location: '.XOOPS_URL.'/' );
exit();
}

include 
XOOPS_TRUST_PATH.'/modules/protector/include/precheck.inc.php' ;
if (!isset(
$xoopsOption['nocommon']) && XOOPS_ROOT_PATH != '' ) {
include 
XOOPS_ROOT_PATH."/include/common.php";
}
include 
XOOPS_TRUST_PATH.'/modules/protector/include/postcheck.inc.php' ;
}}
?>


E finalmente com a transmutação do mainfile [e copia do original para a pasta 'aleluia' - NÃO ESQUEÇA DE FAZER BACKUP], temos :
O quê ficou de mainfile dentro do XOOPS
Código PHP:
 
require_once('/home/seulogincpanel/aleluia/mainfile.php'

"The Kingdom of God is within you and all around you, not in mansions of wood and stone. Split a piece of wood and I am there; lift a stone and you will find me."
"O reino de Deus esta dentro de você e ao seu redor, não em construções de madeira e pedra. Lasque um pedaço de madeira e estarei lá; erga uma pedra e me encontrarás"




Última edição por beduino; 09-11-2007 às 06:59 PM.
beduino está offline  
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Responder com Quote
Resposta

Favoritos



Usuários ativos no Tópico: 1 (0 Membros e 1 Visitantes)
 
Ferramentas do Tópico
Modos de Exibição

Regras para Postagens
Você não pode postar novos tópicos
Você não pode postar respostas
Você não pode postar anexos
Você não pode editar seus posts

Código [IMG] Sim
Código HTML Não
Trackbacks are Sim
Pingbacks are Sim
Refbacks are Sim

Tópicos Similares
Tópico Tópico Iniciado Por Fórum Respostas Última Mensagem
Tutorial Parte IV [XFACIL] Incrementando e palavras finais beduino Tutoriais XOOPS 0 09-11-2007 07:09 PM
Tutorial Parte II [XFACIL] Segurança - Protector beduino Tutoriais XOOPS 0 09-11-2007 05:00 PM
Tutorial parte I [leiame XFACIL] SEG beduino Tutoriais XOOPS 0 07-11-2007 09:28 PM
Tutorial Introdução [leiame XFACIL] beduino Tutoriais XOOPS 0 07-11-2007 09:11 PM


1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178