- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
<?
function anti_sql($expressao) {
$inject=0;
$expressao = strtolower($expressao);
//arrays com palavras e caracteres invalidos
$badword1 = array("' or 0=0 --",'" or 0=0 --',"or 0=0 --","' or 0=0 #","admin'--",'" or 0=0 #',"or 0=0 #","' or 'x'='x",'" or "x"="x',"') or ('x'='x","' or 1=1--",'" or 1=1--',"or 1=1--","' or a=a--",'" or "a"="a',"') or ('a'='a",'") or ("a"="a','hi" or "a"="a','hi" or 1=1 --',"hi' or 1=1 --","hi' or 'a'='a","hi') or ('a'='a",'hi") or ("a"="a',"or '1=1'");
$badword2 = array("select", " select","select "," insert"," update","update "," delete","delete "," drop","drop "," destroy","destroy ");
for($i=0;$i<sizeof($badword1);$i++) {
if(substr_count($expressao,$badword1[$i])!=0)
$inject=1;
}
for($i=0;$i<sizeof($badword2);$i++) {
if(substr_count($expressao,$badword2[$i])!=0)
$inject=1;
}
$charvalidos = "abcdefghijklmnopqrstuvwxyz0123456789БАГВЗЙИКНМУТФХЪЩЬСбагвзйикнмутфхъщьс!?@#$%&(){}[]:;,.-_ ";
for($i=0;$i<strlen($expressao);$i++) {
$char = substr($expressao,$i,1);
if(substr_count($charvalidos,$char)==0)
$inject=1;
}
return($inject);
}
?>
А вот мы на https://gcode.space/ написали!
Славабху хоть кто-то додумался. Но у него другая крайность - не фильтрует комменты типа /**/, а с таким типом комментов есть другая интересная атака, кажется, вида sel/**/ect (не проверял и проверять лень, точно не помню за давностью лет).
Пока низачот.
> "select", " select","select "
Реально трешугар.
Да ладно, полно тут этого, только называется оно обычно antihakir