Bases de datos (2)
En esta lección se describen las tareas a entregar esta semana:
- Crear la carpeta para los programas de esta semana y la hoja de estilo
común.
- Crear en Eclipse PDT una carpeta llamada "tareas5" dentro de
"PHP2011" en la que se guardarán los programas.
- Ejercicio Bases de datos 2-1
- Descargar la solución de los tres últimos ejercicios de la página de
ejercicios Bases de datos
1 (enlace
de descarga de las soluciones).
- Descomprimir los ejercicios en la carpeta tareas5. Se crearán las
carpetas bases_de_datos_1_4, bases_de_datos_1_5 y bases_de_datos_1_6.
para que Eclipse muestre esas carpetas, hay seleccionar la carpeta
tareas5 (o una de nivel superior) en la ventana PHP Explorer (el árbol
de la izquierda en Eclipse) y actualizar (pulsando F5 o haciendo clic
derecho > Refresh).
- Hacer parte del ejercicio Bases de datos 2-1 de la
página de ejercicios
Bases de datos 2.
- Crear en Eclipse PDT la carpeta bases_de_datos_2_1 y copiar en
ella todos todos los archivos de la carpeta bases_de_datos_1_6.
- Modificar las páginas funciones.php, anyadir1.php y anyadir2.php
de acuerdo con el enunciado del ejercicio. La sección de
comentarios situada después del ejemplo dice lo que hay que hacer.
Si no sabéis cómo hacerlo, en la página de comentarios
ampliados hay más ayuda disponible.
- Ejercicio Inyección SQL
- Descargar la apliación vulnerable inyeccion_sql_2.zip
y descomprimir la aplicación en la carpeta tareas5.
- Probar los ataques de inyección SQL que se comentan en la lección de
Inyección SQL
utilizando la aplicación que has instalado en tu ordenador .
(Comprobar y modificar si es necesario la ubicación de la base de
datos en funciones.php).
- En el apartado Inyección SQL 4 de esa lección se comenta que se puede
intentar averiguar el nombre de algún usuario con sentencias LIKE o
cambiar su contraseña. Suponiendo que se conoce el nombre de un
usuario, encontrar una inyección SQL que modifique la contraseña de ese
usuario al valor que queramos y comprobar que funciona (creamos un
usuario con una contraseña, la modificamos con una inyección SQL y
comprobamos que se ha modificado entrando como ese usuario).
Pista para los que no sepan mucho SQL: En el ejercicio
bases_de_datos_1-6 la página modificar3.php contiene una consulta de
modificación, su sintaxis es UPDATE $dbTabla SET campo1='valorNuevo'
WHERE campo2='valorActual'.
Si el ejercicio os resulta muy dificil porque no sabéis SQL, no lo
hagáis, pero al menos probad todas las inyecciones comentadas en la
lección.
- Enviar la tarea
- Ejercicio Bases de datos 2-1. Hacer las siguientes
capturas de pantalla (no importa que los documentos no se vean
completos en la pantalla) y guardarlas con el nombre indicado al
principio de cada punto:
- ApellidoNombre_5-1.png: ventana de Eclipse PDT en la que se vea
la página anyadir1.php.
- ApellidoNombre_5-2.png: ventana de Eclipse PDT en la que se vea
la página anyadir2.php.
- ApellidoNombre_5-3.png: ventana del navegador en la que se vea la
página anyadir2.php en el servidor (que se vea algún aviso, por
ejemplo, que el registro ya existe).
- Ejercicio Inyección SQL 4. Hacer la siguiente
capturas de pantalla (no importa que los documentos no se vean
completos en la pantalla) y guardarlas con el nombre indicado al
principio de cada punto:
- ApellidoNombre_5-4.png: ventana del navegador en la que se vea la
página entrar2.php en la que se vea la inyección SQL que modifica
la contraseña del usuario. Si no lo habéis hecho, no enviéis esta
captura.
- Crear un archivo comprimido con las tres o cuatro imágenes llamándolo
ApellidoNombre_5.zip.
- Enviar el archivo comprimido en la tarea de la semana 5.
Nota final: En los apuntes están incluidas unas posibles
soluciones de los ejercicios. Las he incluido para que sirvan de ayuda a la
gente que tenga más dificultades y espero que no hagáis "trampas" recurriendo a
ellas simplemente para acabar antes.
Esta página forma parte del curso "Páginas web con PHP" disponible en http://www.mclibre.org
Autor: Bartolomé Sintes Marco
Última modificación: 18 de mayo de 2011
Esta obra está bajo una licencia de Creative
Commons.