Documente Academic
Documente Profesional
Documente Cultură
ENTORNO SERVIDOR
ndice
1. Introduccin .......................................................................................................................................................................................................1
2. Mantenimiento del estado ...........................................................................................................................................................................1
2.1. Administracin de estado basada en cliente .............................................................................................................................2
2.2. Administracin de estado basada en servidor .........................................................................................................................3
3. Manejo de cookies ...........................................................................................................................................................................................4
3.1. Configuracin de cookies desde HTTP.........................................................................................................................................5
3.2. Ejemplo de uso de cookies ................................................................................................................................................................7
4. Seguimiento de sesin de un cliente web .............................................................................................................................................9
4.1. Funcionalidad de sesin bsica .......................................................................................................................................................9
4.2. Uso de cookies con sesiones .......................................................................................................................................................... 10
4.3. Almacenamiento del identificador de sesin ......................................................................................................................... 10
4.4. Inicio de sesin .................................................................................................................................................................................... 10
4.5. Registro de variables de sesin .................................................................................................................................................... 11
4.6. Uso de variables de sesin.............................................................................................................................................................. 11
4.7. Anulacin del registro de variables y eliminar la sesin .................................................................................................. 11
4.8. Ejemplo de uso de variables de sesin ..................................................................................................................................... 11
5. Seguridad en aplicaciones Web .............................................................................................................................................................. 13
5.1. Implementar tecnologa de seguridad ...................................................................................................................................... 13
5.2. Modelo de amenazas ......................................................................................................................................................................... 13
5.3. Recomendaciones de seguridad para aplicaciones Web .................................................................................................. 14
1. Introduccin
Las aplicaciones Web fueron concebidas para mostrar contenidos estticos, es decir, informacin no
cambiante en funcin del tiempo, lo que equivale a decir que ante diversas peticiones del mismo recurso,
siempre se obtiene como respuesta el mismo contenido. Por este motivo, no exista la necesidad de almacenar el
estado de las aplicaciones Web, pues las acciones realizadas y los datos introducidos de forma previa a la
peticin de un recurso eran irrelevantes.
En este sentido, el protocolo HTTP, que es el protocolo sobre el que se basa la comunicacin de
contenidos Web, se dise sin estado. Esta carencia no debera tildarse de defecto, pues el hecho de no tener que
reservar recursos para almacenar el estado proporciona una elevada escalabilidad para compartir informacin,
ya que los requisitos de memoria necesarios son mucho ms reducidos. De hecho, esta elevada escalabilidad ha
permitido, entre otras cosas, la rpida extensin de contenidos Web. Por otra parte, dado que los contenidos de
las aplicaciones Web han ido cambiando con el paso del tiempo, ya sea incluyendo informacin dinmica
dependiente del usuario conectado o incluyendo contenidos multimedia, aparece la necesidad de almacenar
acciones realizadas o datos introducidos previamente, es decir, se requiere almacenar el estado de la aplicacin.
Ante esta necesidad, el primer objetivo que se plantea es la eleccin de un mecanismo apropiado para el
almacenamiento del estado. De hecho, existe una propuesta (RFC2109), comnmente conocida como cookies,
que pretende dotar de un mecanismo estndar para manejar el estado.
No obstante, a pesar de que la mayora de los navegadores permiten el uso de cookies, no se ha
convertido en el nico mecanismo utilizado para almacenar el estado, sino que coexiste con otros, como pueden
ser los campos ocultos, el ViewState o las variables de sesin. Gracias a que existen diferentes alternativas a la
hora de almacenar la informacin de estado, es necesario identificar los factores ms relevantes que
determinarn la eleccin del mecanismo apropiado para la gestin del estado, que son, entre otros: el tamao y
tipo de la informacin a almacenar, la duracin temporal de la informacin, la velocidad de almacenado y
recuperacin y los factores de seguridad.
Estado de vista
Estado de control
Campos ocultos
Cookies
Cadenas de consulta
Estado de aplicacin
Estado de sesin
Propiedades de perfiles
Las caractersticas de estado de vista, estado de control, campos ocultos, cookies y cadenas de consulta
almacenan todas ellas datos en el cliente de formas distintas, mientras que las caractersticas de estado de
aplicacin, estado de sesin y propiedades de perfil almacenan los datos en la memoria del servidor. Cada opcin
tiene ventajas y desventajas, dependiendo del escenario.
e) Cadenas de consulta:
Una cadena de consulta es informacin que se anexa al final de la direccin URL de una pgina. Un
ejemplo tpico de cadena de consulta podra tener el siguiente aspecto:
http://www.contoso.com/listwidgets.aspx?category=basic&price=100
En la ruta URL indicada, la cadena de consulta empieza por un signo de interrogacin (?) e incluye dos
pares de atributo-valor, uno de ellos se denomina "category" y el otro, "price".
Las cadenas de consulta proporcionan una manera sencilla pero limitada de mantener la informacin de
estado. Por ejemplo, es una manera sencilla de pasar informacin de una pgina a otra, por ejemplo,
pasar un cdigo de producto de una pgina a otra donde se procesar. Sin embargo, en algunos
exploradores y dispositivos de cliente la longitud de la direccin URL tiene una limitacin de 2083
caracteres.
Para que los valores de las cadenas de consulta estn disponibles durante el procesamiento de la pgina,
debe enviar la pgina utilizando el mtodo GET de HTTP. Es decir, no puede utilizar las cadenas de
consulta si la pgina se procesa como respuesta a un mtodo POST de HTTP.
c) Propiedades de perfiles:
Se permite almacenar datos especficos del usuario. Esta caracterstica es similar al estado de sesin,
salvo que los datos del perfil no se pierden cuando caduca la sesin de un usuario. La caracterstica
propiedades de perfiles utiliza un perfil, que se guarda en un formato persistente y que se asocia con un
usuario especfico. El perfil permite administrar con facilidad la informacin sobre el usuario sin que sea
necesario crear y mantener una base de datos propia. Adems, el perfil hace que la informacin del
usuario est disponible mediante una API con establecimiento inflexible de tipos a la que puede obtener
acceso desde cualquier punto de la aplicacin. Se pueden almacenar objetos de cualquier tipo en el
perfil. La caracterstica de perfil proporciona un sistema de almacenamiento genrico que permite
definir y mantener casi cualquier tipo de datos mientras stos sigan estando disponibles en un modo de
seguridad de tipos.
3. Manejo de cookies
Las cookies proporcionan un medio para almacenar informacin especfica del usuario en las
aplicaciones Web. Por ejemplo, cuando un usuario visita un sitio, las cookies pueden emplearse para almacenar
las preferencias del usuario u otra informacin. Cuando el usuario visite el sitio Web de nuevo, la aplicacin
podr recuperar la informacin que almacen previamente.
Una cookie es un pequeo fragmento de texto que acompaa a las solicitudes y a las pginas mientras
stas se transmiten del servidor Web al explorador y viceversa. La cookie contiene informacin que la aplicacin
Web puede leer cada vez que el usuario visita el sitio. Por ejemplo, si un usuario solicita una pgina de un sitio y
la aplicacin no solo enva una pgina, sino tambin una cookie que contiene la fecha y la hora, cuando el
explorador del usuario obtenga la pgina, tambin obtendr la cookie, que se almacenar en una carpeta en el
disco duro del usuario. Ms adelante, si el usuario solicita de nuevo una pgina del mismo sitio, cuando
introduzca la direccin URL, el explorador buscar en el disco duro local una cookie asociada a dicha direccin. Si
la cookie existe, el explorador la enviar al sitio junto con la solicitud de la pgina. A continuacin, la aplicacin
podr determinar la fecha y hora en que el usuario visit el sitio por ltima vez. Podra utilizar dicha informacin
para mostrar un mensaje al usuario o comprobar una fecha de caducidad.
Las cookies estn asociadas a un sitio Web, no a una pgina especfica, por lo que el explorador y el
servidor intercambiarn informacin de cookies independientemente de la pgina que el usuario solicite en su
sitio. Todos los sitios que visita el usuario pueden enviar una cookie al explorador del usuario; ste las
almacenar independientemente.
Las cookies permiten a los sitios Web almacenar informacin sobre los visitantes. De forma ms general,
las cookies son una manera de mantener la continuidad en una aplicacin Web, es decir, de realizar la
administracin de estados. Excepto durante los breves momentos en los que estn realmente intercambiando
informacin, el explorador y el servidor Web estn desconectados. Las solicitudes que realiza un usuario a un
servidor Web se tratan por separado unas de las otras. Sin embargo, muchas veces, es til para el servidor Web
reconocer a los usuarios cuando solicitan una pgina. Por ejemplo, el servidor Web de un sitio de compras
efecta el seguimiento de cada uno de los compradores para poder administrar los carros de la compra y la
informacin especfica del usuario. Por consiguiente, una cookie acta como una especie de tarjeta de llamada,
que presenta la identificacin necesaria para que la aplicacin sepa cmo continuar.
Las cookies se utilizan para muchos propsitos, todos ellos destinados a facilitar al sitio Web el
reconocimiento de los usuarios. Por ejemplo, un sitio que lleva a cabo un sondeo podra utilizar una cookie
simplemente como un valor booleano para indicar si el explorador del usuario ya ha participado en la votacin, a
fin de evitar que el usuario vote dos veces. Un sitio que solicita a un usuario que inicie una sesin podra utilizar
una cookie para registrar dicho inicio de sesin a fin de que el usuario no tenga que seguir proporcionando sus
credenciales.
La mayora de los exploradores admiten cookies de un tamao mximo de 4096 bytes. Debido a este
lmite, es recomendable utilizar las cookies para almacenar pequeas cantidades de datos, o mejor an, un
identificador como un id. de usuario. Este id. se puede utilizar para identificar al usuario y leer informacin
relativa a ste de una base de datos u otro almacn de datos.
Los exploradores tambin imponen limitaciones respecto al nmero de cookies que cada sitio puede
almacenar en el equipo del usuario. La mayora de los exploradores slo permiten 20 cookies por sitio; si se
intenta almacenar ms, las cookies ms antiguas se descartan. Algunos exploradores tambin definen un lmite
absoluto, normalmente 300, en cuanto al nmero de cookies que aceptan desde todos los sitios en conjunto.
Una limitacin de las cookies con la que podra encontrarse es que los usuarios pueden configurar sus
exploradores para rechazarlas.
Tambin se puede establecer la fecha y hora de caducidad de una cookie. El explorador elimina las
cookies caducadas cuando un usuario visita el sitio que las escribi. La caducidad de una cookie debera
establecerse en funcin del tiempo que su aplicacin considere que el valor de la misma seguir siendo vlido.
Para que una cookie no caduque nunca, se puede establecer la fecha de caducidad en 50 aos a partir de ahora.
Si no se establece la caducidad de la cookie, sta se crea pero no se almacena en el disco duro del
usuario. En su lugar, la cookie se mantiene como parte de la informacin de sesin del usuario. Cuando el usuario
cierra el explorador, la cookie se descarta. Una cookie no persistente de este tipo resulta til para la informacin
que se debe almacenar durante perodos cortos de tiempo o que, por motivos de seguridad, no se debera
escribir en el disco del equipo cliente. Por ejemplo, las cookies no persistentes son tiles si el usuario est
trabajando en un equipo pblico en cuyo disco no desea que se escriba la cookie.
Se puede definir una cookie en el equipo de un usuario si enva un encabezado HTTP que contenga datos
con el siguiente formato:
Set-Cookie: NOMBRE=VALOR; [expires=FECHA;] [path=RUTA;] [domain=DOMINIO;] [secure]
De esta forma se crea una cookie con el nombre NOMBRE y con el valor VALOR. El resto de parmetros
son opcionales. El campo expires establece la fecha hasta la cual ser vlida la cookie. Si no se establece una fecha
de caducidad, la cookie ser permanente a menos que la eliminemos manualmente. Los campos path y domain se
pueden utilizar de forma conjunta para especificar el o los URL para los que se utiliza la cookie. La palabra
reservada secure indica que la cookie no se enviar a travs de una conexin HTTP.
Cuando un navegador se conecta a un URL, primero busca las cookies almacenadas localmente. Si
ninguna de ellas es relevante para el URL al que se ha conectado, se devuelven al servidor.
El parmetro expire recibe una fecha Unix, por oposicin al formato de fecha Wdy, DD-Mon-YYYY
HH:MM:SS GMT, esto se debe a que PHP realiza esta conversin internamente.
path
La ruta dentro del servidor en la que la cookie estar disponible. Si se utiliza '/', la cookie estar
disponible en la totalidad del domain. Si se configura como '/prueba/', la cookie slo estar
disponible dentro del directorio /prueba/ y todos sus sub-directorios en el domain, tales como
/prueba/bar/. El valor por defecto es el directorio actual en donde se est configurando la cookie.
domain
El dominio para el cual la cookie est disponible. Establecer el dominio a 'www.example.com' har
que la cookie est disponible en el subdominio www y subdominios superiores. Las cookies
disponibles en un dominio inferior, como 'example.com', estarn disponibles en dominios superiores,
como 'www.example.com'.
secure
Indica que la cookie slo debiera transmitirse por una conexin segura HTTPS desde el cliente.
Cuando se configura como TRUE, la cookie slo se crear si es que existe una conexin segura. Del
lado del servidor, depende del programador el enviar este tipo de cookies solamente a travs de
conexiones seguras (por ejemplo, con $_SERVER["HTTPS"]).
httponly
Cuando es TRUE la cookie ser accesible slo a travs del protocolo HTTP. Esto significa que la
cookie no ser accesible por lenguajes de scripting, como JavaScript. Se ha indicado que esta
configuracin ayuda efectivamente a reducir el robo de identidad a travs de ataques XSS (aunque no
es soportada por todos los navegadores), pero esa afirmacin no se comparte a menudo. Agregado en
PHP 5.2.0. puede ser TRUE o FALSE.
Si existe algn tipo de salida anterior a la llamada de esta funcin, setcookie() fallar y retornar FALSE.
Si se ejecuta satisfactoriamente, retornar TRUE. Esto no indica si es que el usuario ha aceptado la cookie o no.
Si se define una cookie como:
setcookie('micookie', 'valor');
Cuando el usuario visite la siguiente pgina del sitio, o vuelva a cargar la pgina actual, se podr acceder
a la cookie a travs de $_COOKIE['micookie'] o de $HTTP_COOKIE_VARS["micookie"] o, si se ha activado
register_globals directamente como $micookie.
Se puede eliminar una cookie si se llama a la funcin setcookie() de nuevo con el mismo nombre de
cookie y una fecha de caducidad pasada. Tambin se puede definir manualmente una cookie con ayuda de la
funcin header(), que es usada para enviar encabezados HTTP sin formato, y la sintaxis de cookie que se mostr
anteriormente. Es preciso enviar los encabezados de cookie antes que ningn otro encabezado o no funcionarn,
esto es una limitacin de las propias cookie ms que una limitacin del propio lenguaje PHP. La sintaxis de
funcin header() es la siguiente:
void header ( string $string [, bool $replace = true [, int $http_response_code ]] )
replace
El parmetro opcional replace indica cuando el encabezado debe reemplazar un encabezado previo
similar o aadir un segundo encabezado del mismo tipo. Por defecto lo reemplazar, pero si se pasa
FALSE como segundo argumento se puede forzar mltiples encabezados del mismo tipo. Por ejemplo:
<?php
header('WWW-Authenticate: Negotiate');
header('WWW-Authenticate: NTLM', false);
?>
http_response_code
Fuerza el cdigo de respuesta HTTP a un valor especfico. Observa que este parmetro solamente
tiene efecto si string no est vaco.
La funcin no devuelve ningn valor.
Hay que tener en cuenta que header() debe ser llamada antes de mostrar nada por pantalla, etiquetas
HTML, lneas en blanco desde un fichero o desde PHP. Es un error muy comn leer cdigo con funciones como
include() o require(), u otro tipo de funciones de acceso de ficheros que incluyen espacios o lneas en blanco que
se muestran antes de llamar a la funcin header(). Sucede el mismo problema cuando se utiliza un solo fichero
PHP/HTML. Por ejemplo:
<?php
/* Esto producir un error. Fjate en el html
que se muestra antes que la llamada a header() */
header('Location: http://www.example.com/');
?>
// Es que estoy recibiendo un estilo nuevo, lo tengo que meter en las cookies
$estilo = $_POST["estilo"];
// Meto el estilo en una cookie
setcookie("estilo", $estilo, time() + (60 * 60 * 24 * 90));
}
else {
// Si no he recibido el estilo que desea el usuario en la pgina,
// miro si hay una cookie creada
if (isset($_COOKIE["estilo"])){
// Es que tengo la cookie
$estilo = $_COOKIE["estilo"];
}
}
?>
<html>
<head>
<title>Cookies en PHP</title>
<?php
// Miro si he tengo un estilo definido, porque entonces tengo que cargar la
// correspondiente hoja de estilos
if (isset($estilo)){
echo '<link rel="STYLESHEET" type="text/css" href="' . $estilo . '.css">';
}
?>
</head>
<body>
Ejemplo de uso de cookies en PHP para almacenar la hoja de estilos CSS
que queremos utilizar para definir el aspecto de la pgina.
<form action="cookies-php.php" method="post">
Aqu puedes seleccionar el estilo que prefieres en la pgina:
<br>
<select name="estilo">
<option value="verde">Verde
<option value="rosa">Rosa
<option value="negro">Negro
</select>
<input type="submit" value="Actualizar el estilo">
</form>
</body>
</html>
El estado de sesin permite almacenar y recuperar los valores de un usuario cuando el usuario explora
diferentes pginas que conforman una aplicacin Web. HTTP es un protocolo sin estado, lo que significa que el
servidor Web trata cada solicitud HTTP de una pgina como una solicitud independiente; el servidor no retiene
informacin alguna sobre los valores de las variables que se utilizan durante las solicitudes anteriores. El estado
de sesin identifica las solicitudes recibidas desde el mismo explorador durante un perodo limitado de tiempo
como una sesin y proporciona la capacidad de conservar los valores de las variables durante la duracin de esa
sesin.
HTTP es un protocolo sin estado, es decir, que no indica automticamente si una secuencia de solicitudes
proviene del mismo cliente ni si una sola instancia de explorador sigue viendo activamente una pgina o un sitio.
En consecuencia, la creacin de aplicaciones Web que necesitan mantener informacin del estado de una
solicitud a otra puede resultar sumamente complicada sin la ayuda adicional de una infraestructura.
El estado de sesin, sin embargo, no se conserva entre los lmites de las aplicaciones Web. Si se pasa de
una aplicacin Web a otra durante una ejecucin, la informacin de sesin no est disponible en la nueva
aplicacin.
Las sesiones siguen un flujo de trabajo sencillo. Cuando una sesin se inicia, PHP recuperar una sesin
existente usando el ID pasado (normalmente desde una cookie de sesin) o, si no se pasa una sesin, se crear
una sesin nueva. PHP rellenar la variable superglobal $_SESSION con cualesquiera datos de sesin de que se
inicie la sesin. Cuando PHP se cierra, automticamente toma el contenido de la variable superglobal $_SESSION,
la serializa, y la enva para almacenarla usando el gestor de almacenamiento de sesiones.
Por omisin, PHP usa el gestor interno de almacenamiento files, el cual se establece mediante
session.save_handler. ste guarda los datos de sesin en el servidor en la ubicacin especificada por la directiva
de configuracin session.save_path.
En este caso se utiliza la funcin strip_tags() para evitar ataques de secuencias de comandos entre sitios
web.
Normalmente resulta ms sencillo compilar con --enable-trans-sid, siempre que sea posible.
Esta funcin comprueba si ya hay un identificador de sesin actual, En caso contrario, crear uno para
tal fin. Si ya existe el identificador de sesin, bsicamente carga las variables de sesin registradas
para que se puedan utilizar. Es aconsejable llamar a la funcin session_start() al inicio de todas las
secuencias de comandos que utilicen sesiones.
b) La segunda forma de iniciar una sesin consiste en configurar PHP para que lo haga automticamente
cuando alguien visite el sitio web. Esto se puede hacer por medio de la opcin session.auto_start
incluida en el archivo php.ini.
Este mtodo presenta el inconveniente de que al activar auto_start no es posible utilizar objetos como
variables de sesin.
10
Se realizar el seguimiento de la variable que se acaba de crear hasta que finalice la sesin o hasta que la
anule manualmente.
Cuando se haya terminado con la sesin, primero se debera anular el registro de todas las variables y,
tras ello, llamar a la funcin session_destroy() para borrar el identificador de sesin.
11
<body>
<?php
$_SESSION["miVariableSesion "] = "Hola este es el valor de la variable de sesin";
?>
</body>
</html>
Como se puede ver, es importante inicializar la sesin antes de hacer otra cosa en la pgina. Luego
podremos definir variables de sesin en cualquier lugar del cdigo PHP de la pgina.
Para leer una variable de sesin se hace a travs del mismo array asociativo $_SESSION. Es tan sencillo
como haramos para utilizar cualquier otra variable, lo nico es que tenemos que haber inicializado la sesin
previamente. Y por supuesto, que la variable que deseamos acceder exista previamente.
<?php
session_start();
?>
<html>
<head>
<title>Leo variable de sesin</title>
</head>
<body>
Muestro esa variable:
<?php
echo $_SESSION["miVariableSesion"];
?>
</body>
</html>
Como se puede ver, al inicio del cdigo hemos inicializado la sesin y luego en cualquier parte del cdigo
podramos acceder a las variables de sesin que tuvisemos creadas.
Un ejemplo clsico de utilizacin de una sesin es un contador. Este contador deber aumentar de una
unidad cada vez que recargamos la pgina o abramos el enlace:
<?php
session_start();
if (!isset($_SESSION["cuenta_paginas"])){
$_SESSION["cuenta_paginas"] = 1;
}
else{
$_SESSION["cuenta_paginas"]++;
}
?>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Contar pginas vistas por un usuario en toda su sesin</title>
</head>
<body>
12
<?php
echo "Desde que entraste has visto " . $_SESSION["cuenta_paginas"] . " pginas";
?>
<br>
<br>
<a href="otracuenta.php">Ver otra vez la pgina</a>
</body>
</html>
b.
Suplantacin:
Suplantar es utilizar los datos de identificacin de otro usuario o proceso de forma no autorizada. En su
versin ms simple, la suplantacin consistira en especificar las credenciales de un usuario diferente.
Un usuario malintencionado podra tambin cambiar el contenido de una cookie para fingir que es otra
persona o que la cookie proviene de un servidor diferente.
En general, es posible contribuir a evitar la suplantacin mediante una autenticacin estricta. Siempre
que alguien solicita acceso a informacin privada, es preciso asegurarse de que es quien dice ser.
Tambin se puede contribuir a la defensa contra la suplantacin manteniendo la informacin de
credenciales a salvo. Por ejemplo, no se debe guardar nunca una contrasea ni otro tipo de datos
confidenciales o privados en una cookie, donde un usuario malintencionado podra encontrarlos y
modificarlos fcilmente.
Manipulacin:
Manipular significa cambiar o eliminar un recurso sin autorizacin. El ejemplo tpico consiste en
desfigurar una pgina Web, para lo cual, el usuario malintencionado logra acceso al sitio y cambia
13
c.
d.
e.
f.
algunos archivos. Un modo indirecto de manipulacin son los ataques mediante secuencias de
comandos. en los que el usuario malintencionado consigue que se ejecute cdigo (secuencia de
comandos) enmascarndolo como la entrada de datos de un usuario en un formulario o como un
vnculo.
Una defensa fundamental contra la manipulacin consiste en usar la seguridad del Sistema Operativo
para bloquear los archivos, directorios y otros recursos de mismo. La aplicacin tambin debera
ejecutarse con privilegios mnimos. Para ayudar a evitar los ataques mediante secuencias de comandos,
no se debe confiar de la informacin que proceda de un usuario, ni de una base de datos. Siempre que se
obtenga informacin de una fuente que no sea de confianza, hay que procesarla y asegrese de que no
contiene cdigo ejecutable.
Repudio:
Una amenaza de repudio implica llevar a cabo una transaccin de manera que no haya pruebas
fehacientes de los actores principales de la transaccin. En una aplicacin Web, esto puede significar que
se est suplantando a un usuario inocente usando sus credenciales. Contribuir a la proteccin contra el
repudio es posible, de nuevo, aplicando una autenticacin estricta. Adems, se deben usar las funciones
de inicio de sesin del Sistema Operativo para mantener un registro de auditora de cualquier actividad
en el servidor.
Revelacin de informacin:
Revelacin de informacin significa simplemente robar o desvelar informacin que se supone que es
confidencial. Un ejemplo clsico es robar contraseas, pero puede implicar el acceso a cualquier archivo
o recurso del servidor.
La mejor proteccin contra la revelacin de informacin es no tener informacin que revelar. Por
ejemplo, si se evita el almacenamiento de contraseas, ningn usuario malintencionado podr robarlas.
Una alternativa al almacenamiento de las contraseas consiste en guardar slo un valor hash de stas.
De este modo, cuando un usuario presenta sus credenciales, se puede extraer el valor hash de su
contrasea y compararlo con el almacenado.
Si, an as, se almacena informacin confidencial, se debe utilizar la seguridad del propio sistema para
ayudar a protegerla. Como en todos los casos anteriores, se debera utilizar la autenticacin para
contribuir a garantizar que slo los usuarios autorizados pueden tener acceso a la informacin
restringida. Si se tiene que exponer informacin confidencial, es recomendable que se cifre cuando se
almacene y que se utilice SSL (Secure Sockets Layer) para cifrar la informacin cuando se enve al
explorador o se reciba de ste.
Denegacin de servicio:
Un ataque de denegacin de servicio consiste en hacer deliberadamente que una aplicacin est menos
disponible de lo que debera. Un ejemplo tpico es sobrecargar una aplicacin Web de forma que no
pueda servir a los usuarios normales. Como alternativa, los usuarios malintencionados pueden intentar
simplemente bloquear el servidor.
Los Servidores Web permiten limitar las aplicaciones de forma que slo sirvan un nmero determinado
de solicitudes, lo que podra resultar til para negar el acceso a usuarios o direcciones IP que se sabe que
son malintencionados. Para mantener las aplicaciones en lnea, es esencial ejecutar cdigo slido. Se
debe probar exhaustivamente la aplicacin y responder apropiadamente a los errores siempre que sea
posible.
Concesin de privilegio:
Un ataque de concesin de privilegio consiste en usar medios malintencionados para obtener ms
permisos de los asignados normalmente. Por ejemplo, en un ataque de concesin de privilegio que tenga
xito, un usuario malintencionado consigue obtener privilegios administrativos para el Servidor Web, lo
que le proporciona acceso a todos los datos del servidor, as como el control de las funciones de ste.
14
Realizar copias de seguridad de los datos con asiduidad y guardarlos en un lugar seguro.
Mantener el servidor Web en un lugar fsico seguro, de forma que los usuarios no autorizados no puedan
tener acceso a l, apagarlo, llevrselo, etc.
Utilizar el sistema de archivos apropiado, por ejemplo NTFS, Ext4, etc.
Proteger el servidor Web y todos los equipos de la misma red con contraseas seguras.
Seguir los procedimientos recomendados para asegurar los servicios Web.
Cerrar los puertos que no se utilicen y desactivar los servicios que no se estn en uso.
Ejecutar un programa antivirus que supervise el trfico.
Usar un firewall.
Mantenerse informado sobre las actualizaciones de seguridad ms recientes del Sistema Operativo y
otros fabricantes, e instalarlas.
Usar las funciones de registro de eventos del sistema y examinar los registros con frecuencia para
detectar actividades sospechosas. Esto incluye los intentos repetidos de iniciar sesin en el sistema y un
exceso de solicitudes en el servidor Web.
Ejecutar las aplicaciones con el mnimo de privilegios.
Conocer a los usuarios.
Protegerse contra entradas malintencionadas.
Tener acceso seguro a bases de datos.
Crear mensajes de error seguros.
Mantener segura la informacin confidencial.
Usar cookies de forma segura.
Protegerse contra amenazas de denegacin de servicio.
15