[Resolvido] Injection em paginação
Boa tarde a todos!!
Recorrendo novamente ao fórum.
Resolvi scanear meu site com o Acunetix Web Vulnerability e me retornou algumas falhas.
Dentre as falhas mostrou me falhas de Sql Injection.
Na url chamava a pagina da seguinte maneira index.php?id=10 por ex.
Aí mudei o codigo, antes era assim
$id_evento = $_GET['id'];
aí eu mudei, adicionei um (int) antes do $_GET. Parou de mostrar falha e ficou assim:
$id_evento = (int)$_GET['id'];
Quero saber se neste ponto resolvi o problema da injeção?
O outro problema que encontrei e me parece mais grave foi na paginação e este nao consegui resolver ainda.
No mesmo scanner e na mesma pagina apareceu outra um erro na variavel 'pg'
Fiz uma busca em todo o codigo e no unico trecho aonde existe a tal variavel é no seguinte trecho de codigo.
<?php
if($nImagem>0){
echo "Total: $nImagem<br>";
$tot_paginas = $nImagem/$limite;
$tot_paginas = ceil($tot_paginas);
$pg = $_GET['pg'];
if (isset($pg)){
$final = $pg * $limite;
$inicio = $final - $limite;
}else{
$pg = 1;
$inicio = 0;
$final = $limite;
}
if($pg<=1){
//echo "Primeira " ;
} else {
echo "<a href=\"album.php?id=$id_evento\">Primeira</a> ";
}
if($pg<=1){
//echo "Anterior " ;
} else {
echo "<a href=\"album.php?id=$id_evento&pg=".($pg-1)."\">Anterior</a> ";
}
if($tot_paginas>1){
for($i=1; $i<=$tot_paginas; $i++) {
if(($i)!=$pg){
echo "<a href=\"album.php?id=$id_evento&pg=$i\">$i</a> ";
}else{
echo "$i ";
}
}
}
if($pg>=$tot_paginas){
//echo "Próxima ";
}else{
echo "<a href=\"album.php?id=".$id_evento."&pg=".($pg+1)."\">Próma </a> ";
}
if($pg==$tot_paginas){
//echo "Última";
}else{
echo "<a href=\"album.php?id=".$id_evento."&pg=".$tot_paginas."\">Última</a> ";
}
$queImagensEvento = $objEvento->SelecionarImagem($id_evento, $inicio, $limite);
if($inicio==0)
$inicio = 1;
if($inicio>1)
$inicio++;
if($final>$nImagem)
$final = $nImagem;
echo "<br/>Exibindo de $inicio a $final";
}
?>
Quando acesso na url aparece assim: index.php?id=18&pg=2
Como faço para solucinar este problema para declarar esta variavel. Usei o mesmo metodo do id porem nao deu certo.
Fiz de algumas formas mas sempre aparece no scanner como falha Sql Injection.
No aguardo,..
Discussão (7)
Carregando comentários...