Seguridad informatica
¿Quieres reaccionar a este mensaje? Regístrate en el foro con unos pocos clics o inicia sesión para continuar.
Seguridad informatica

todo sobre seguridad informatica
 
ÍndicePortalÚltimas imágenesBuscarRegistrarseConectarse

 

 Tutorial de como mejorar la seguridad en una web

Ir abajo 
AutorMensaje
Morfeo
Moderador
Moderador
Morfeo


Cantidad de envíos : 77
Fecha de inscripción : 12/03/2008

Tutorial de como mejorar la seguridad en una web Empty
MensajeTema: Tutorial de como mejorar la seguridad en una web   Tutorial de como mejorar la seguridad en una web I_icon_minitimeLun Abr 07, 2008 4:48 pm

RFI (remote file inclusion)

miremos estos scripts


<?php $page = $_GET[algo].".php";

include($page); ?>


o

<?php

header("Location: ".$_GET['page']);

?>


o

esta es una forma errada de tratar de impedir la inclusion de archivosse puede envez de http:// por ftp://

<?php
$page = $_GET[algo].".php";
$page = str_replace('http://','',$page);
include($page);
?>


es por si colocan algun http:// donde deveria estar la variable



si en sus webs manejan algunos de los anteriores scripts de seguro su web sera vulnerable, lo q pasa es q no filtra nada de lo q pasa por el metodo GET, una de las tantas formas q hay para solucionarlo es cun un switch asi:

<?php
switch (trim($_GET['algo'])) {
case '1': $file = '1.php';
break;
case '2': $file = '2.php';
break;

default: $file = 'home.php';
break;

include($file);
}
?>


la url seria algo asi http://url.com/inde.php?algo=1 e incluiria 1.php y si la variable se deja sola o no existe se incluye home.php y error solucionado, ademas de un switch se pueden con arrays, con if .... (si alguien quiere expandir un poco mas de como hacerlo aparte de un switch seria de mucha ayuda:))




Ataques xss

El atake por xss fundamental sirve para robar cookies, redireccionar, sacar alertas..., muchas veces se encuentran estas vulns en buscadores de las webs,en algunas variables,donde se pueda encrustar algo de code html, en foros, registros ....

para filtrar un poco una variable a estos atakes se podria colocar algo asi

<?php
$query_cont = preg_replace("#<script#i","<|script",$query_cont);
echo $query_cont;
?>


pero con esto no se esta 100% seguro por q pueden decodificar signos como >,<, /,'," y no hay q olvidar q un ataque por xss no se limita por un simple <script></script>

mas info en estos links

http://us3.php.net/htmlspecialchars

http://us3.php.net/striptags

lo mejor q se puede hacer es si no se esta seguro no colocar buscadores en su web,en foros o guestbooks.. o lo q sea no permitir code html aunq en algunos paquetes buenos dejan activado html pero solo deja la entrada de algunas etiquetas inofensivas, asi q no hay problema en algunos casos



Inyecciones SQL

Pues el tema de evitar inyecciones sql es algo complicado, lo mas logico seria filtrar bien lo q pase por estas variables $_GET, $_POST y $_COOKIE o en esta variable global $_SERVER['HTTP_USER_AGENT'] donde se podria incertar directamente code en el querry y al no tener cuidado con

vamos una funcion para filtrar algunos signos

function filtrar($variable)
{
if($variable){
$variable=str_replace("&","& ",$variable);
$variable=str_replace("'","'",$variable);
$variable=str_replace("´","'",$variable);
$variable=str_replace("`","'",$variable);
$variable=str_replace("\"","" ",$variable);
}else unset($variable);
return $variable;
}



como tmb se deben filtrar

1 => '--',
2 => "'",
3 => '%',
4 => '=',
5 => '"',
6 => '.',
7 => ',',
8 => ';',
9 => 'union',
10 => 'UNION',
11 => 'insert',
12 => 'INSERT',
13 => 'delete',
14 => 'DELETE',
15 => 'drop',
16 => 'DROP',
17 => 'update',
18 => 'UPDATE',
19 => 'like',
20 => 'LIKE',
21 => '*',
22 => '?',
23 => '(',
24 => ')',
25 => 'and',
26 => 'AND',
27 => 'or',
28 => 'OR',


utilizados en estas inyecciones sql, otro tema q se pudiera anexar seria las blinds sql q constan de "' and 1" de esto no recuerdo mucho pero son muy buenas esta clase de inyecciones


Como banear IPs

pues no esta bueno este metodo por q se pueden hacer cadenas de proxis y seria como una perdida de tiempo esto pero igual sirve como para aprender por si alguien siente curiosidad Wink

<?php
$ip = "xx.xxx.xxx.xx";

if($_SERVER['REMOTE_ADDR'] == $ip){
echo("Coneccion rechazada xD.");
}else{
header('Location: http://www.google.com');
}
?>


para banear varias ips se podria de esta forma pero trabajar con .txts no es recomendable por esto mismo la seguridad, es mejor trabajarlo desde la bd pero aqui dejo el script como ejemplo

<?php
$handle = fopen("rango_de_ips.txt", "r");
$tmp = fread($handle, filesize("ips.txt"));
fclose($handle);

$list = explode("\n", $tmp);

for ($i=0; $i<count($list); $i++) {
if($list[$i] <> $_SERVER['REMOTE_ADDR']) {
header('Location: http://www.google.com');
}else{
echo ("Coneccion rechazada");
}
}

?>



Como evitar registros automaticos, flood por medio de un codigo de seguridad

Para este metodo es necesario contar con la libreria GD en nuestro host ya q con esto es la q trabaja, lo q hace es inpedir q bots o programas para hacer D.O.S. sobrecargen la web de tantas peticiones, ya q al no haber algo de impida X numero de peticiones o este mal programado se puede hacer una denegacion de servicio, este metodo esta muy de moda por estos dias y ahora vamos a ver de como evitar todo eso en las webs, para servidores mas adelante Wink

una cosa manejar la libreria GD y hacer este codigo de seguridad es algo mas complicado a solo colocar un script cualquiera aqui solo voi a mostrar uno q encontre en inet

<?
session_start(); // Iniciamos la sesion
$numero_aleatorio = rand(1000,9999); // Generamos el numero con rand
$_SESSION[cod] = $numero_aleatorio; // Guardamos el numero en la sesion

//Indicamos que el documento va a ser una imagen
header ("Content-type: image/png");

//Declaramos im con la creacion de una imagen
$im = @ImageCreate (80, 25);

//Declaramos el color de fondo RGB
$color_fondo = ImageColorAllocate ($im, 0, 155, 255);

//Declaramos tambien el color del texto tambien RGB
$color_texto = ImageColorAllocate ($im, 255, 255, 255);

//Creamos el Texto dentro de la imagen
ImageString ($im, 12, 20, 5, $_SESSION[cod], $color_texto);

//Por ultimo creamos la imagen png
ImagePng ($im);

?>


y en otra web revisamos si son iguales los datos asi:

<?
if($confirmacion == $_SESSION[cod])
{
print "Codigo correcto";
}else{
print "error";
}
?>


ahora hay un post en este foro donde se estan viendo las maeras de repeler estos ataques pero a servidores, en webs se podria hacer algo parecido, por lo menos con codigos de seguridad aleatorios como arriba se muestra, vigilando las descargas para evitar q coman todo el ancho de banda si el host de limitado ...

para evistar esta clase de ataques en servidores se podria utilizar el modsecurity para el apache q es como un firewall q blokea cualquier intento de intrucion mas info en http://www.modsecurity.org/download/ Wink

eplicacion sacada de shellsec

CITA
ModSecurity es una herramienta para la detección y prevención de intrusiones para aplicaciones web, lo que podríamos denominar como "firewall web". Este motor funciona como módulo de Apache, incrementando la seguridad del servidor web frente a ataques de tipo tanto conocido como desconocido. Ayuda a evitar, entre otros tipos de ataque:

• Técnicas anti-evasión
• Supervisa código HTML y cookies
• Análisis de los contenidos pasados al servidor mediante el método POST
• Permite realizar completas auditorías de los POSTs realizados
• Soporta HTTPS
• Soporta contenidos comprimidos
• etc..


La instalación y configuración en Apache no resulta excesivamente complicada, para lo cual sólo es necesario instalarlo como módulo y activar unas ciertas reglas en el fichero de configuración httpd.conf, y puede ser usado con otros módulos (como Snort o mod_rewrite) para obtener una mayor funcionalidad.


----------------

Algunas recomendaciones

*Seria bueno si esta trabajando con registros en su web no maneje las secciones por medio de cookies o si las usa intente con metodos de encriptacion como md5() y base64_encode()

*Proteja sus direcctorios con un .htaccess o con un simple index.html (asi sea en blanco) para q no puedan entrar y ver q tienen sus directorios
Volver arriba Ir abajo
 
Tutorial de como mejorar la seguridad en una web
Volver arriba 
Página 1 de 1.
 Temas similares
-
» Tutorial AIMFix
» maxima seguridad
» Vigilancia de seguridad
» SEGURIDAD WIFI
» LA seguridad en el dia mundial de internet

Permisos de este foro:No puedes responder a temas en este foro.
Seguridad informatica :: Seguridad En Redes :: Seguridad en paginas web-
Cambiar a: