Fóruns sobre PHP, JavaScript, HTML, MySQLi, jQuery, Banco de Dados, CSS


Moderador: web

 
Avatar do usuário
ADMIN
ADMIN
Tópico Autor
Mensagens: 17735
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Problema com a função ereg deprecated

09-03-2011 16:45

Muita gente ainda tem em seus códigos a função ereg, que, está descontinuada no PHP.

A função ereg usa expressão regular para validar determinado valor, usando um if com essa função, é possível retornar se o valor é válido ou não, de acordo com a expressão regular.

A função ereg foi substituída pela função preg_match do PHP.

Com a função preg_match é possível usar também as expressões regulares, deixo um exemplo que irá verificar se o valor é um número, usando o preg_match.

$valor = "a"; // verificando se valor é um número if (preg_match( '/^[0-9]/', $valor)) { echo "correto"; // é um número } else { echo "errado"; // não é um número } 

0
A melhor hospedagem para o seu site HostGator!
 
Primeiras postagens
Primeiras postagens
Mensagens: 3

Problema com a função ereg deprecated

09-03-2011 17:50

Ola amigo, alterei pela preg_match e adicionei '/' antes e depois da expreção, entretanto retornou este erro

Warning: preg_match() [function.preg-match]: Unknown modifier '(' in /home/rafael/Público/leilaoultimolance/inc/php/blb/diasComplementos/Segurança/detectaAtaque.php on line 33

pode explicar melhor essa questão das barras?
0
 
Avatar do usuário
ADMIN
ADMIN
Tópico Autor
Mensagens: 17735
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Problema com a função ereg deprecated

09-03-2011 17:56

São delimitadores. Qual script você tem o problema?
0
A melhor hospedagem para o seu site HostGator!
 
Primeiras postagens
Primeiras postagens
Mensagens: 3

Problema com a função ereg deprecated

09-03-2011 18:02


// SQL Injection simples // if ( preg_match ( '//(\%27)|(\')|(\-\-)|(\%23)|(#)/ix/' , $string ) ) { // Instanticia exceção // throw new Exception("Tentativa de SQL Injection simples"); }

este é um deles, tenho outros que ainda não pus delimitadores...

// SQL Injection por meta-characters // else if ( preg_match ( '/((\%3D)|(=))[^\n]*((\%27)|(\')|(\-\-)|(\%3B)|(;))/i' , $string ) ) { // Instanticia exceção // throw new Exception("Tentativa de SQL Injection por meta-characters" ); } // SQL Injection normal // else if ( preg_match ( '/\w*((\%27)|(\'))((\%6F)|o|(\%4F))((\%72)|r|(\%52))/ix' , $string ) ) { // Instanticia exceção // throw new Exception ( "Tentativa de SQL Injection normal" ); } // SQL Injection com execução de core // else if ( preg_match ( '/exec(\s|\+)+(s|x)p\w+/ix' , $string ) ) { // Instanticia exceção // throw new Exception("Tentativa de SQL Injection com execução de core"); } // XSS simples // else if ( preg_match ( '/((\%3C)|<)((\%2F)|\/)*[a-z0-9\%]+((\%3E)|>)/ix' , $string ) ) { // Instanticia exceção // throw new Exception("Tentativa de XSS simples"); } // XSS // else if ( preg_match ('/((\%3C)|<)((\%69)|i|(\%49))((\%6D)|m|(\%4D))((\%67)|g|(\%47))[^\n]+((\%3E)|>)/I' , $string ) ) { // Instanticia exceção // throw new Exception("Tentativa de XSS"); } // XSS // else if ( preg_match ( '/((\%3C)|<)[^\n]+((\%3E)|>)/I' , $string ) ) { // Instanticia exceção // throw new Exception("Tentativa de XSS"); }

0
 
Avatar do usuário
ADMIN
ADMIN
Tópico Autor
Mensagens: 17735
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Problema com a função ereg deprecated

09-03-2011 18:08

Aqui no fórum tem um exemplo pronto, até mais simples de anti-injection, dá uma olhada

Script-de-anti-injection-MySQL_19_5715.html
0
A melhor hospedagem para o seu site HostGator!
 
Primeiras postagens
Primeiras postagens
Mensagens: 3

Problema com a função ereg deprecated

09-03-2011 19:09

feito!

vou por o código aqui para futuras consultas.

basicamente foi retirado os 'x' no final e alguns 'I' viraram 'i'... agradecimentos especiais ao web!

<?php /** * Detecta e informa ataques * Esta função necessita de uma conexão MySQL ativa * Recomenda-se interromper ou alterar o fluxo do script caso esta função retorne uma string * * @author Rafael A. R. Dias <rafael@descodificando.com.br> * @name detectaAtaque * * @package dias_Complementos * @version 11.03.09 * * @param (string)&$string String a ser escapada * @return (boolean/string) TRUE se estiver OK, ou uma string com a mensagem de ataque caso tenha sido detectado. */ function detectaAtaque ( &$string ) { // Se não esta vazio // if ( ! empty ( $string ) ) { // Se 'magic_quotes_gpc' estiver ativo, retira os escapes // $string = ( get_magic_quotes_gpc ( ) ) ? stripslashes ( $string ) : $string; // Se tiver tentativa de... // try { // SQL Injection simples // if ( preg_match ( '/(\%27)|(\')|(\-\-)|(\%23)|(#)/i', $string ) ) { // Instanticia exceção // throw new Exception("Tentativa de SQL Injection simples"); } // SQL Injection por meta-characters // else if (preg_match ( '/((\%3D)|(=))[^\n]*((\%27)|(\')|(\-\-)|(\%3B)|(;))/i' , $string ) ) { // Instanticia exceção // throw new Exception("Tentativa de SQL Injection por meta-characters" ); } // SQL Injection normal // else if ( preg_match ( '/\w*((\%27)|(\'))((\%6F)|o|(\%4F))((\%72)|r|(\%52))/i ' , $string)) { // Instanticia exceção // throw new Exception ( "Tentativa de SQL Injection normal" ); } // SQL Injection com execução de core // else if ( preg_match ( '/exec(\s|\+)+(s|x)p\w+/i' , $string ) ) { // Instanticia exceção // throw new Exception("Tentativa de SQL Injection com execução de core"); } // XSS simples // else if ( preg_match ( '/((\%3C)|<)((\%2F)|\/)*[a-z0-9\%]+((\%3E)|>)/i' , $string ) ) { // Instanticia exceção // throw new Exception("Tentativa de XSS simples"); } // XSS // else if ( preg_match ( '/((\%3C)|<)((\%69)|i|(\%49))((\%6D)|m|(\%4D))((\%67)|g|(\%47))[^\n]+((\%3E)|>)/i' , $string ) ) { // Instanticia exceção // throw new Exception("Tentativa de XSS"); } // XSS // else if ( preg_match ( '/((\%3C)|<)[^\n]+((\%3E)|>)/i' , $string ) ) { // Instanticia exceção // throw new Exception("Tentativa de XSS"); } } catch ( Exception $ataque ) { // Retorna mensagem do ataque // return "[" . date ("d/m/Y H:i:s" ) . "] Foi detectado uma tentativa de invasão pelo IP {$_SERVER['REMOTE_ADDR']}: " . $ataque -> getMessage ( ) . "\r\n"; } // Retorna verdadeiro // return TRUE; } } ?>

0
 
Avatar do usuário
ADMIN
ADMIN
Tópico Autor
Mensagens: 17735
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Problema com a função ereg deprecated

09-03-2011 19:13

:rofl:
0
A melhor hospedagem para o seu site HostGator!

Quem está online

Usuários navegando neste fórum: Nenhum usuário registrado