Para fazer tal coisa sem correr riscos é muito simples basta aplicar uma criptografia nos dados antes de inserir no banco de dados caso tenha alguma tag que você queira eliminar(impedir o seu uso) basta usar as expressões regulares para fazer isso então vamos lá.
O script completo no está final do post
Vou disponibilizar a função anti_sql_injection de duas maneiras uma que elimina as tags indesejáveis e uma outra caso você queira que a tag não seja executada mas que apareça como a pessoa digitou nos 2 exemplos vou utilizar a tag <script> </script> como indesejada mas você pode colocar quantas tags quiser como indesejada.
Primeiro temos essa que mentem a tag mas não a utiliza.
<?php
function anti_sql_injection ($str) {
$str = preg_replace("[<script>]", "<script>", $str);
$str = preg_replace("[/<script>]", "</script>", $str);
$str = base64_encode($str);
return $str;
}
?>
No exemplo acima se você digitar <script> alert("1") </script> <strong>O rato roeu a roupa do rei de roma</strong> o resultado será:<script> alert("1") </script> O rato roeu a roupa do rei de roma
Depois temos essa que elimina as tags indesejadas
<?php
function anti_sql_injection ($str) {
$str = preg_replace("[<script>]", "", $str);
$str = preg_replace("[/<script>]", "", $str);
$str = base64_encode($str);
return $str;
}
?>
No exemplo acima se você digitar <script> alert("1") </script> <strong>O rato roeu a roupa do rei de roma</strong> o resultado será:alert("1") O rato roeu a roupa do rei de roma
Para reverter a operação e mostrar ao usuário é so chamar a função TrataDados($str)
<?php
function TrataDados($str) {
$str = base64_decode($str);
return $str;
}
?>
Código completo
Nenhum comentário:
Postar um comentário