Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Estou com problema em dois arquivos: comprar.php e solicitar.php.
Em ambos os arquivos estou utilizando a seguinte "querystring":
<?php
$pasta = strip_tags(trim("comprar/arquivos"));
$inc = strip_tags(trim("404.php"));
if(strip_tags(trim($_GET['opcao']))=="passo1") { $inc = "$pasta/passo1.php"; }
if(strip_tags(trim($_GET['opcao']))=="passo2") { $inc = "$pasta/passo2.php"; }
if(strip_tags(trim($_GET['opcao']))=="passo3") { $inc = "$pasta/passo3.php"; }
if(strip_tags(trim($_GET['opcao']))=="passo4") { $inc = "$pasta/passo4.php"; }
include($inc);
?>
Funcionando assim: index.php?opcao=passo1.
Querystring que faz a verificação se o arquivo existe... Caso não existe mostra a pagina 404.php (http://www.redehost.com.br/duvidas/protecao-contra-php-injection--138.aspx)
Até ai tudo bem... Novamente fui no Acunetix e surpresa:
img1: Aqui ele mostra a quantidade de erros que pode servir para invasão...
/applications/core/interface/imageproxy/imageproxy.php?img=http://s14.postimage.org/r9cpd58of/img1.jpg&key=0cc6bd3b97649f08ea150369818f6857c4920045c5340da35c69e4cd893e855c" alt="img1.jpg" />
img2: Aqui ele mostra as páginas sujeitas a invasão... (comprar.php e solicitar.php)
/applications/core/interface/imageproxy/imageproxy.php?img=http://s14.postimage.org/w9eqyu3ov/img2.jpg&key=81688e19eee02e1c171804cc2d1fad19dccffedeccbf36c56f7922a565fb2635" alt="img2.jpg" />
img3: Aqui ele mostra os '<inputs>' já ocultos e visiveis. São puxados das outras paginas: passo2, que chama o passo3, que chama o passo4. Todos através de action="post". É como um formulario que passa de pagina pra pagina, por esse motivo utilizo inputs ocultos.
/applications/core/interface/imageproxy/imageproxy.php?img=http://s14.postimage.org/yf91tc75b/img3.jpg&key=8fba759b1cdd421a738050a5079ccd364eb02ed741fc4b6bf9eb8c20dde0999a" alt="img3.jpg" />
img4: Inputs com erros na pagina comprar.php
/applications/core/interface/imageproxy/imageproxy.php?img=http://s14.postimage.org/brtsn6rlb/img4.jpg&key=80c1f1c3fbe1f1d9c1e0003a5fcb3d2868d04eb25ab6aeadeb8cb3b0c79840ae" alt="img4.jpg" />
img5: Inputs com erros na pagina solicitar.php
/applications/core/interface/imageproxy/imageproxy.php?img=http://s14.postimage.org/4d4gut5pr/img5.jpg&key=d4315dc3ec734dc462c89c338a262cfb0369580e1c8458d5f7e13a2d2fa58ef7" alt="img5.jpg" />
img6: Inputs com erros na pagina solicitar.php
/applications/core/interface/imageproxy/imageproxy.php?img=http://s14.postimage.org/ebpfhaf5b/img6.jpg&key=3483b6a7f4154e8837fab8cc114976bc08bbafd1eaffe84ae68942b2dcf12a13" alt="img6.jpg" />
Nos $_POST eu estou utilizando:
function anti_sql_injection($string){
$string = get_magic_quotes_gpc() ? stripslashes($string) : $string;
$string = function_exists("mysql_real_escape_string") ? mysql_real_escape_string($string) : mysql_escape_string($string);
return $string;
}
e pra chamar a funcao (utilizo pra chamar em passo1, passo2, passo3 e passo4):
$valor = anti_sql_injection(strip_tags(trim($_POST['valor'])));
$produto = anti_sql_injection(strip_tags(trim($_POST['produto'])));
$tamanho = anti_sql_injection(strip_tags(trim($_POST['tamanho'])));
Acima algumas variaveis de exemplo...
Alguém pode me ajudar? Onde estou pecando?
Edit: Se quiserem eu posto o código das páginas passo2.php, passo3.php e passo4.php. Já que o código da passo1.php é basicamente aquela função de querystring por ID.
Carregando comentários...