Jump to content


Photo

Anti Injection


  • Faça o login para participar
2 replies to this topic

#1 Inu

Inu

    Veterano

  • Usuários
  • 1138 posts
  • Sexo:Masculino
  • Localidade:Canela, Rio Grande do Sul, Brasil

Posted 27/09/2006, 13:37

Fiz assim:
if( flag_spam($code) ){
  echo $msg;
}else{
  $code = anti_injection($code);
}
if( flag_spam($uid) ){
  echo $msg;
}else{
  $uid = anti_injection($uid);
}
if( flag_spam($nome) ){
  echo $msg;
}else{
  $nome = anti_injection($nome);
}
if( flag_spam($email) ){
  echo $msg;
}else{
  $email = anti_injection($email);
}
if( flag_spam($aniversario) ){
  echo $msg;
}else{
  $aniversario = anti_injection($aniversario);
}
if( flag_spam($relacionamento) ){
  echo $msg;
}else{
  $relacionamento = anti_injection($relacionamento);
}
if( flag_spam($animais) ){
  echo $msg;
}else{
  $animais = anti_injection($animais);
}
if( flag_spam($view_email) ){
  echo $msg;
}else{
  $view_email = anti_injection($view_email);
}
if( flag_spam($cidade) ){
  echo $msg;
}else{
  $cidade = anti_injection($cidade);
}
if( flag_spam($estado) ){
  echo $msg;
}else{
  $estado = anti_injection($estado);
}
if( flag_spam($pais) ){
  echo $msg;
}else{
  $pais = anti_injection($pais);
}

functions.php
<?php
function anti_injection($sql_in){
  $sql = preg_replace("/(from|select|insert|delete|where|drop table|show tables|#|\*|--|\\\\)/ie","",$sql_in);
  $sql = trim($sql);
  $sql = strip_tags($sql);
  $sql_out = addslashes($sql);
return $sql_out;
}

function flag_spam($text){
  $words = "phentermine|viagara|cialis|vioxx|oxycontin|levitra|ambien|xanax|paxil";
  $found = preg_match_all("#(http://|www\.)($words)#ie",$text,$matches);
if($found > 0)
return true;
else
return false;
}
?>

<?php
//MSG de Erro.
$msg = "Ocorreu um erro. Talvez você esqueceu de preencher algum campo.<br>.

Usou caracteres não permitidos.<br>Seu IP foi gravado para averiguação.<br>Clique <a

href=\"blog.php?p=comentar&id=$blog_id\">aqui</a> para voltar e tentar de novo.";
?>

O problema, é que, se tiver erro em algum IF da validação de spam, ele deveria parar todo o processamento da página e exibir o erro, o que ele não faz. Como posso fazer isso? =/

Edição feita por: Inu, 27/09/2006, 13:52.


#2 MagicalTrevor

MagicalTrevor

    Novato no fórum

  • Usuários
  • 7 posts
  • Sexo:Não informado

Posted 27/09/2006, 14:29

tente usar um die($msg); ou return;

Edição feita por: MagicalTrevor, 27/09/2006, 14:30.


#3 Inu

Inu

    Veterano

  • Usuários
  • 1138 posts
  • Sexo:Masculino
  • Localidade:Canela, Rio Grande do Sul, Brasil

Posted 27/09/2006, 14:37

Deu certo. Valeu!




1 user(s) are reading this topic

0 membro(s), 1 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq