PHP - Codigo php vulnerable

 
Vista:

Codigo php vulnerable

Publicado por Juanpi Gallardo (1 intervención) el 06/06/2018 01:03:52
hola que tal quisiera saber que esta mal en el siguiente codigo, osea cuales serian las debilidades, referidas al tema de la seguridad y un poco sobre el tema SQL Injection.


Codigo PHP vulnerable

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
<?
$mysqli = new mysqli('localhost','root', ,'seguridad');
if($mysqli->connect_errno){
    echo 'error db';
}
 
$id=$_GET['id'];
if(isset($id) && !empty($id)){
 
$sql = "SELECT text,title FROM news where id=".$id;
#echo $sql;
    $q = $mysqli->query($sql) or mysql_error();
    $row = $q->fetch_assoc();
    if(isset($row['title'])){
        echo 'Titulo: '. $row['title'];
        echo "<br>";
        echo 'Texto: '.$row['text'];
        echo "<br>";
    }
}
else{
    echo 'pase algun valor en la variable id';
}
?>
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 157
Ha aumentado su posición en 2 puestos en PHP (en relación al último mes)
Gráfica de PHP

Codigo php vulnerable

Publicado por Andres (67 intervenciones) el 06/06/2018 01:26:52
Empieza por filtrar el contenido del get, el caso sería igual si usarás post.

Si sabes que vas a recibir un dato tipo numérico, como un entero como imagino que es el caso de tu variable ID, usa funciones como intval() de PHP para asegurar que no se agregará nada diferente a tu sentencia SQL.

Hay muchas funciones, librerías y framework para proteger tu código, pero un código bien escrito desde el inicio es indispensable.

Puedes adicionar seguridad adicional por ejemplo agregando un WAF (Web Aplication Firewall) a tu infraestructura, sin embargo medidas como está no reemplazan un código escrito adecuadamente.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar