Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Mateus Silva

Função para evitar ataques

Recommended Posts

seguinte galera, eu tenho um sistema onde uso a seguinte função para inserção de dados no db:

function inject($str){
		$str = get_magic_quotes_gpc() ? stripslashes($str) : $str;
        $str = function_exists('mysql_real_escape_string') ? mysql_real_escape_string($str) : mysql_escape_string($str);
		$str = trim($str);
		$str = strip_tags($str);
		return $str;
	}

porém, ela não restorna tags html e adiciona \ nas aspas, como é de se esperar. o que eu gostaria é que: mesmo que contenham tags html ou aspas, aparecessem o conteúdo normalmente na hora de imprimir, pois é um sistema de noticias e caso precise utilizar aspas ou caracterers especias nao fica interessante que adicione barra invertida ou oculte os caracteres, alguem tem algum link pra estudo ou uma função que faça isso ? obrigado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Utilize prepared statements, isso resolve o seu problema.

Compartilhar este post


Link para o post
Compartilhar em outros sites

PDO ou Mysqli?

pois é esta função ai e para mysql_*

 

E para guardar informações vindo text area usando wysiwygs, converta todos os caracteres aplicáveis em entidades html

 

entrada

htmlentities((string)$string, ENT_QUOTES, 'utf-8');

saída

html_entity_decode((string)$string, ENT_QUOTES, 'utf-8')

Compartilhar este post


Link para o post
Compartilhar em outros sites

 

PDO ou Mysqli?

 

pois é esta função ai e para mysql_*

 

E para guardar informações vindo text area usando wysiwygs, converta todos os caracteres aplicáveis em entidades html

 

entrada

htmlentities((string)$string, ENT_QUOTES, 'utf-8');

saída

html_entity_decode((string)$string, ENT_QUOTES, 'utf-8')

é PDO amigo

Compartilhar este post


Link para o post
Compartilhar em outros sites

Então não faz sentido a utilização da função acima, pois não é para PDO.

 

Caso esteja utilizando ela em várias partes do sistema, troque por esta abaixo:

function inject($str){
    $str = filter_var($str, FILTER_SANITIZE_STRING);
    return trim( $str );
}

http://php.net/manual/pt_BR/function.filter-var.php

 

E não use FILTER_SANITIZE_STRING para dados vindo de wysiwygs, ai é a que passei acima!

 

htmlentities e html_entity_decode

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.