Autor
|
Tema: Codigo PHP vulnerable (Leído 3,853 veces)
|
Juanpi123321
Desconectado
Mensajes: 1
|
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. Le puse puntos xq no me deja identar correctamente. Codigo PHP vulnerable <? $mysqli = new mysqli('localhost','root', ,'seguridad'); if($mysqli->connect_errno){ echo 'error db'; } $id=$_GET['id']; $sql = "SELECT text,title FROM news where id=" $id; #echo $sql; $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'; } ?>
· Los códigos deben ir en etiquetas GeSHi >aquí las reglas del foro -Engel Lex
|
|
|
|
« Última modificación: 6 Junio 2018, 03:45 am por #!drvy »
|
En línea
|
|
|
|
|
engel lex
|
$id=$_GET['id']; $sql = "SELECT text,title FROM news where id=".$id; allí se puede filtrar una peticion (y ese codigo tiene errores) estudia sobre sql injection pero podría pasar solo viendolo sin mucho detalle esto hará que los datos detornados sean de todos los id... es el clasico codigo de principios de los 2000 para mostrar como una pagina era vulnerable
|
|
|
|
|
En línea
|
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.
|
|
|
LaThortilla (Effort)
Desconectado
Mensajes: 234
¿En que vida harás lo que en esta no?
|
$id=$_GET['id']; $sql = "SELECT text,title FROM news where id=".$id; allí se puede filtrar una peticion (y ese codigo tiene errores) estudia sobre sql injection pero podría pasar solo viendolo sin mucho detalle esto hará que los datos detornados sean de todos los id... es el clasico codigo de principios de los 2000 para mostrar como una pagina era vulnerable Exactamente por eso debes utilizar http://php.net/manual/es/mysqli.real-escape-string.php
|
|
|
|
|
En línea
|
|
|
|
|
#!drvy
|
- Aprende a utilizar sentencias preparadas. - Intenta tener un control (más o menos) sobre los datos que manejas. Si usas el ID únicamente como un integro, asegúrate que es un integro. - Usar isset y empty viene a ser algo así como comprobar que tienes las llaves en el bolsillo y sacarlas del bolsillo para comprobar que las tienes... a la vez. - Aprende a utilizar Try/Catch en vez de usar el "OR ELSE". <?php $mysqli = new mysqli('localhost', 'root', 'contraseña','seguridad'); if($mysqli->connect_errno){ } // con (int) te aseguras que manejas un integro. $id = (int) $_GET['id']; // sentencia preparada $query = "SELECT text,title FROM news where id=?"; try { $stmt = $mysqli->prepare($query); $stmt->bind_param('i', $id); // i de integer. $stmt->execute(); $result = $stmt->get_result(); $stmt->close(); // Si la consulta devuelve 1 o más resultados... // recogemos el resultado. if($result->num_rows > 0){ $result = $result->fetch_assoc(); } else { $result = false; } // Si hay error en la consulta... } catch(Exception $e){ die('Error con la consulta -> '. $e->getMessage()); } // Resultado. if($result){ } else { echo 'No hay resultados.'; } } else { echo 'Haga una consulta al ID.'; }
Referencias:http://php.net/manual/es/mysqli.prepare.phphttp://php.net/manual/es/language.types.integer.php (#Conversión de numeros a enteros). http://php.net/manual/en/mysqli-stmt.bind-param.phphttp://php.net/manual/es/mysqli-stmt.get-result.phphttp://php.net/manual/es/class.exception.phpSaludos
|
|
|
|
« Última modificación: 23 Agosto 2018, 01:45 am por #!drvy »
|
En línea
|
|
|
|
|
| Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
No es vulnerable?
« 1 2 »
Nivel Web
|
bizco
|
10
|
7,682
|
7 Septiembre 2010, 16:58 pm
por bizco
|
|
|
Codigo JS en router ClearAcess, vulnerable?
Java
|
CloudswX
|
0
|
2,629
|
7 Septiembre 2011, 05:26 am
por CloudswX
|
|
|
AYUDA - Subir avatar con código php (Foro vulnerable)
Nivel Web
|
Ch3z7er
|
0
|
2,470
|
18 Noviembre 2013, 08:15 am
por Ch3z7er
|
|
|
¿Es vulnerable a SQL Injection este código?
PHP
|
romerixo
|
6
|
5,117
|
26 Septiembre 2014, 22:44 pm
por Yaldabaot
|
|
|
Web vulnerable a XSS
Nivel Web
|
llAudioslavell
|
9
|
5,585
|
3 Enero 2015, 07:42 am
por dimitrix
|
|