Documentos de Académico
Documentos de Profesional
Documentos de Cultura
1. Introduccin
2. Imgenes dinmicas en PHP
3. Funciones de biblioteca para la creacin de
imgenes
4. Ejercicios
Introduccin
PHP dispone de una biblioteca de funciones para la generacin
dinmica de imgenes
Estas funciones son particularmente interesantes para generar
grficos estadsticos actualizados al instante
Formatos: GIF, PNG, JPEG
Configuracin:
Requiere el uso de la librera php_gd2.dll (Windows) o gd.so
(Unix, Linux)
Debe activarse la extensin correspondiente en el fichero
php.ini:
extension = php_gd2.dll
extension = gd.so
Imgenes dinmicas en PHP
Procedimiento general:
imagen.php
<?PHP
header (Content-type: image/png);
// instrucciones grficas
imagepng ($imagen);
imagedestroy ($imagen);
?>
llamada
<IMG SRC=imagen.php>
Imgenes dinmicas en PHP
(0,0) x
(ancho,alto)
Funciones de biblioteca
Colores
$color = imagecolorallocate ($imagen, R, G, B)
Formas geomtricas
imagerectangle ($imagen, x0, y0, x1, y1, $color)
imagefilledrectangle
imagearc ($imagen, xc, yc, ancho, alto, gi, gf, $color)
imagefilledarc
(x0, y0)
(xc, yc)
gi
(x1, y1)
gf
Funciones de biblioteca
Fondos
$imagen = imagecreatefrompng (imagen.png)
$imagen = imagecreatefromjpeg (imagen.jpg)
Textos
imagestring ($imagen, tamao, x, y, $texto, $color)
Guardar imgenes
imagepng ($imagen, imagen.png);
imagejpeg ($imagen, imagen.jpg);
Ejercicios
Ejercicio 1: creacin de imgenes simples
Ilustra cmo crear un grfico de tarta
Ejercicios
Ejercicio 2: encuesta
Ilustra cmo utilizar un grfico de tarta para mostrar los
resultados de una encuesta
Tema 7: Seguridad
Seguridad en el cliente
Cdigo mvil
Seguridad en el servidor
Servidor web, servidor de bases de datos, lenguajes de servidor
Seguridad en la aplicacin
Control de acceso
Validacin de datos de entrada
Programacin segura
Seguridad en la comunicacin
Certificados digitales, SSL
Seguridad en PHP
Primera recomendacin:
Disponer siempre de versiones actualizadas de Apache y PHP
Aspectos de PHP que pueden dar lugar a vulnerabilidades:
Variables globales
Nombres de ficheros
Subida de ficheros
Bibliotecas
Datos enviados desde formularios
Variables globales
<?PHP
if (comprueba_privilegios())
$superuser = true;
...
?>
Variables globales
<?PHP
$superuser = false;
if (comprueba_privilegios())
$superuser = true;
...
?>
Variables globales
$edad = $_REQUEST[edad];
...
Nombres de ficheros
include (/usr/local/lib/bienvenida/$username);
$file = $_POST[username];
$file2 = basename (realpath($file));
if ($file2 != $file)
die ($file no es un username vlido);
include (/usr/local/lib/bienvenida/$file);
Nombres de ficheros
open_basedir = /alguna/ruta
include_path = .:/usr/local/php:/usr/local/lib/myapp
Inyeccin
Consiste en inyectar en la aplicacin datos introducidos por el
usuario. Esto es muy habitual y de por s no es peligroso
Ejemplo: sea la instruccin
Inyeccin SQL
Consiste en inyectar un mandato dentro de una consulta SQL.
Sea la consulta:
Inyeccin SQL
Sea ahora el siguiente cdigo muy habitual en una aplicacin
Web:
Inyeccin SQL
Se puede saltar la comprobacin del password introduciendo el
valor juan-- como username o el valor OR = como
password. Las consultas que quedaran en ambos casos son,
respectivamente:
Inyeccin SQL
La inyeccin SQL puede utilizarse para:
Cambiar valores de las consultas
Concatenar varias consultas
Aadir llamadas a funcin y procedimientos almacenados a una
consulta
Para evitar la inyeccin SQL es muy importante validar los
valores que se han de integrar en la consulta SQL. En el
primer caso, por ejemplo, $codigo debe ser un valor entero
Resumen