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