← PHP

[anjo2] Repositório de código

Lida 1848 vezes

Offline

anjo2 
Membro
Mensagens 3020 Gostos 0
Troféus totais: 31
Trófeus: (Ver todos)
Super Combination Combination Topic Starter 10 Poll Votes Poll Voter Poll Starter Level 5 Level 4 Level 3 Level 2

De modo a ajudar a comunidade, e aproveitando para ter o código organizado e não em dezenas de ficheiros no alojamento e centenas no ficheiro, vou deixar aqui pequenas partes de código e a descrição do que fazem.

<?php
if(preg_match('/MSIE/'$_SERVER['HTTP_USER_AGENT'])) $explorer "IE";
?>

Este código define na variável "$explorer" o valor "IE" quando estiver a ser usado o internet explorer, e assim pode-se fazer modificações específicas para o IE.

<?php
if(isset($_REQUEST['debug'])) {
   
print_r($_SERVER);  // Mostra tudo o que está dentro do array "$_SERVER"
   // Pode ser adicionado outras coisas
}
?>

Ao colocar depois do link "?debug" ele mostra o que definimos dentro do if

<?php
if(!$_SESSION["cc"]) {
        
$stream fopen("http://www.ipdomain.info/cc[".$_SERVER['REMOTE_ADDR']."]""r");
        if(
stream_get_contents($stream) != "pt") {
                
fclose($stream);
                exit;
        }
        
$_SESSION["cc"] = "pt";
        
fclose($stream);
}
?> 

Bloquear acessos sem serem nacionais

Espero que isto possa ajudar, ao longo do tempo vou adicionando código, agora não tenho muito tempo para procurar e meter.
Offline

anjo2 
Membro
Mensagens 3020 Gostos 0
Troféus totais: 31
Trófeus: (Ver todos)
Super Combination Combination Topic Starter 10 Poll Votes Poll Voter Poll Starter Level 5 Level 4 Level 3 Level 2

Tenho estado a actualizar um pouco o meu repositório para um sistema próprio, ainda não está criado, mas vou deixar aqui um script muito útil ainda numa versão inicial.

Muita gente tem problemas de segurança devido às permissões erradas, por norma usa-se 755 para pastas e 644 para ficheiros, é bastante difícil andar a verificar ficheiro a ficheiro, pelo que fica aqui uma solução ainda em versão inicial mas funcional.

Código: [Seleccione]
<?php
        
/** Change permissions of files, script V1.0 by anjo2 **/

        
$dir "";
        
$chdir 0755;
        
$chfile 0644;
        
$subfolders 1// 1 - Search in subfolders | 0 - Only search in folder "$dir"

        
function ch_dir($dir$subfolders$chdir$chfile)
        {
                if(empty(
$dir)) $listdir scandir("./");
                else 
$listdir scandir($dir);
                
$listdir array_diff($listdir, array("..""."));
                foreach(
$listdir as $file)
                {
                        if(
is_dir($dir.$file))
                        {
                                if(
substr(decoct(fileperms($dir.$file)), 1) !== $chdir)
                                {
                                        echo 
$dir.$file." - ".substr(decoct(fileperms($dir.$file)), 1);
                                        
chmod($dir.$file$chdir);
                                        echo 
" - ".substr(decoct(fileperms($dir.$file)), 1)." \n";
                                }
                                if(
$subfolders)
                                {
                                        
$temp ch_dir($dir.$file."/"1$chdir$chfile);
                                }
                        }
                        else
                        {
                                if(
substr(decoct(fileperms($dir.$file)), 2) !== $chfile)
                                {
                                        echo 
$dir.$file." - ".substr(decoct(fileperms($dir.$file)), 2);
                                        
chmod($dir.$file$chfile);
                                        echo 
" - ".substr(decoct(fileperms($dir.$file)), 2)." \n";
                                }
                        }
                }
        }
        
ch_dir($dir$subfolders$chdir$chfile);
?>

Basta executarem no browser. Ignorem o output ;)

Atenção, isto é uma versão ainda verde, falta-lhe muita coisa, a intenção é só mudar os que estão mal e indicar os que não conseguiu mudar, podendo escolher o que sai para output ou então para um log.

Aceita-se sugestões.

PS.: O significado do output é:
ficheiro - permissões actuais - novas permissões
ex.:
index.php - 0777 - 0644
Offline

André Freitas 
Membro
Mensagens 941 Gostos 16
Troféus totais: 29
Trófeus: (Ver todos)
Apple User Super Combination Combination Topic Starter 10 Poll Votes Poll Voter Level 5 Level 4 Level 3 Level 2

Código bem útil, obrigado pela contribuição Anjo2.