Função para segurança php Jean Carlos Ferreira Lemes
Pessoal tenho esta função faz tempo já, mais para ajudar o pessoal com a segurança estou disponibilizando para todos.

Caso tenha alguma dica ou duvida postem ai...

  1. <?php 
  2. function segurancastring($s) {
  3. $s addslashes($s);
  4. $s htmlspecialchars($s);
  5. $s mysql_escape_string($s);
  6. $s str_ireplace("SELECT","",$s);
  7. $s str_ireplace("or","",$s);
  8. $s str_ireplace("FROM","",$s);
  9. $s str_ireplace("WHERE","",$s);
  10. $s str_ireplace("INSERT","",$s);
  11. $s str_ireplace("UPDATE","",$s);
  12. $s str_ireplace("DELETE","",$s);
  13. $s str_ireplace("DROP","",$s);
  14. $s str_ireplace("*","",$s);
  15. $s str_ireplace("&","",$s);
  16. $s str_ireplace("=","",$s);
  17. $s str_ireplace("DATABASE","",$s);
  18. $s str_ireplace("USE","",$s);
  19. return $s;}
  20. ?>


Comentários

Rafa Jaques: Essa função é interessante, mas ela pode retirar partes importantes do texto. Teria que avaliar em que contexto ela é aplicável.

Para aumentar o nível de segurança, seria interessante usar filter_var() e/ou uma ORM.

Obrigado por compartilhar! :)
Jean Carlos Ferreira Lemes: Então Rafa, verdade oque você falou,

Eu utilizo ele em um sistema com mais de 2.000 logins, só que retirei a parte dos textos (or, DROP, USE etc..) e deixei apenas os caracteres especiais, e algumas sequencias de caracteres em html.

No sistema que desenvolvi, para login é permitido apenas letras, números e alguns caracteres(@, _, -, .). no momento de criação ou edição do login verifico se algum carácter não permitido esta no meio...
Jean Marcondes: Tenho usado esse a mais de 10 anos sem problemas.

if (basename($_SERVER["REQUEST_URI"]) === basename(__FILE__)){
exit();
}


/**
* $sec = new Security();
* $_GET = $sec->Inject($_GET);
* $_POST = $sec->Inject($_POST);
* $_COOKIE = $sec->Inject($_COOKIE);
* Class Security
*/
class Security
{
/**
* @param $opcao
* @return mixed
*/
function Inject($opcao)
{
$invalidos = array("'", "*", "--", "%", ";", "", "$","-","+","<",">",")","(","=",'"');

foreach ($opcao as $chave => $value)
{
for ($y = 0; $y < sizeof($invalidos); $y++)
{
$value = str_ireplace($invalidos[$y], "", $value);
$return[$chave] = stripslashes($value);
}
}
return $return;
}
}
?>
 


Você precisa realizar login pelo Facebook para enviar posts, comentários, apagar posts ou baixar posts em PDF. Para isso, clique no botão "Login no facebook".



Receba os posts por email: (?)

Conheça o Adianti Framework para PHP:

  • Desenvolvimento com componentes;
  • Formulários e datagrids.
  • Versão Web e Desktop (Gtk);
  • Multiplataforma;
  • Desenhe as interfaces;
  • IDE própria (Adianti Studio).
Ver detalhes...

Tenha mais produtividade com:

Adianti Studio: IDE para PHP

  • Leve e rápido;
  • Syntax highlight;
  • Gerência de projetos;
  • Navegação em banco de dados;
  • Autocomplete e plugins.
Mais informações...