Muitos sofrem com problemas ocasionados com bugs tanto no Xampp quando no Gesior eu estarei apenas ensinando algumas maneiras de deixar ambos um pouco mais seguro!
Gesior
Primeiramente vamos ao classico bug de redirecionamento, onde seu site fica sendo redirecionado para outro!
Este é um bug do gesior e agora vamos corrigir esse problema!
Vá em htdocs/config e abra o arquivo config.php, dentro procure a seguinte linha!
$config['site']['access_news'] = 2;
onde está ['access_news'] = 2; mude para ['access_news'] = 6;
Explicando esse é o numero de acesso maximo para paginas do Gesior!
Na linha de baixo adicone essa tag:
$config['site']['access_tickers'] = 6;
E nas linhas abaixo adicione o acess 6 em todas tags que contem comando de acess, ficando assim:
$config['site']['access_news'] = 6; // access level needed to edit news $config['site']['access_tickers'] = 6; $config['site']['access_admin_panel'] = 6; // access level needed to open admin panel
para ter acesso ao painel admin do site, batsa colocar page acess 6, na conta que irá ter o privilégio, isso no phpmyadmin !
Vá até layouts/sua-skin/layout.php e procure a tag <body e substitua por essa:
<body onBeforeUnLoad="SaveMenu();" onUnload="SaveMenu();" oncontextmenu="return false" onselectstart="return false" ondragstart="return false">
Agora, logo abaixo da tag <body>, você adicionará o seguinte código:
<?php { $sql = preg_replace(sql_regcase("/(from|select|insert|delete|where|drop table|show tables|#|\*|--|\\\\)/"),"",$sql); $sql = trim($sql); $sql = strip_tags($sql); $sql = addslashes($sql); return $sql; } function protect($str) { if( !is_array($str) ) { $str = preg_replace("/(from|select|insert|delete|where|drop table|show tables)/i","",$str); $str = preg_replace('~&#x([0-9a-f]+);~ei', 'chr(hexdec("\\1"))',$str); $str = preg_replace('~&#([0-9]+);~e', 'chr("\\1")',$str); $str = str_replace("<script","",$str); $str = str_replace("script>","",$str); $str = str_replace("<Script","",$str); $str = str_replace("Script>","",$str); $str = trim($str); $tbl = get_html_translation_table(HTML_ENTITIES); $tbl = array_flip($tbl); $str = addslashes($str); $str = strip_tags($str); return strtr($str,$tbl); } else return $str; } $nome = anti_injection($_POST["nome"]); $senha = anti_injection($_POST["senha"]); $link = htmlspecialchars($_POST['link'], ENT_QUOTES); echo $link; header("Content-Type: text/html; charset=ISO-8859-1",true)?>
Ainda em layout.php logo abaixo da tag <head>, você adicionará o seguinte código:
<script type="text/javascript"> function click() { if (event.button==2||event.button==3) { oncontextmenu='return false'; } } document.onmousedown=click document.oncontextmenu = new Function("return false;") </script>
Esses códigos te ajudarão a se previr contra SQL Injection, mas eu afirmo logo que isso não é 100% seguro.
Vá até o arquivo guilds.php e localize a seguinte tag:
$guild_logo = $guild->getCustomField('logo_gfx_name'); if(empty($guild_logo) || !file_exists("guilds/".$guild_logo)) $guild_logo = "default_logo.gif";
Agora substitua por isso:
foreach (array("/", "\\", "..") as $char) { $guild_logo = str_replace($char, "", $guild->getCustomField('logo_gfx_name')); } if (empty($guild_logo) || !file_exists("guilds/".$guild_logo)) { $guild_logo = "default_logo.gif"; }
Pronto, seu guilds.php está seguro agora.
Exclua completamente o arquivo houses.php, ele é um arquivo muito inutilizado e ainda muito vulnerável, pessoas maliciosas podem conseguir ver sua config.lua através dele, portanto apenas exclua.
Agora vamos ao Xampp
Vá na pasta Xampp e delete a pasta webdav. É ela que é responsavel pelo acesso do seu site de outro local, e pode ser usada para hackiar seu site! (recomentado o uso apenas para quem sabe mecher nas configurações da webdav).
Irei postar agora um video de como proteger seu phpmyadmin
Em breve estarei atualizando com mais conteudo como proteger seu xampp e gesior!
Creditos: GPedro, lipehcf e PiabetaMan01