Mamedu
Medidas de seguridad

22 de Mayo, 0279

Recolección de medidas de seguridad para php

  • Tener register_globals en Off.

    Esto nos obliga a leer las variables desde $_GET, $_POST, o $_REQUEST y hacer el programa más seguro.

  • htmlentities($variable)

    Nos eliminara etiquetas html.

  • Revisar las estadísticas para ver si hay algún movimiento "raro" de algún fichero.

    Los errores 440 y demás personalizarlos y enviar un correo o registrar la url para comprobar. (Jesús Valverde)

  • Añadir intval() a las consultas al pasar un identificador, por ejemplo para ir de un listado a una ficha bien sea por GET o por POST:

    //
    <a href="fichaproducto.php?id=7">Producto 7</a>
    
    y en ficha...
    
    if(intval($_GET["id"] > 0)      {
    
       // Sigo y muestro ficha, he recibido como identificador un número entero
    
    }
    else    {
       // redirijo a la principal
       header("Location:http://www.dominio.com");
    }
    //
    

    con esto nos evitamos encontrarnos conn texto en unna consulta que no lo neccesita, osea:

    $id = "1; SELECT * FROM Usuarios;";
    

    Fallaria, así como cualquier otra cadena que nos quisieran colar

  • Configurar php.ini para que no se pudiera ejecutar comandos del sistema.

  • Hola, yo hace un tiempo tuve que migrar una pagina hecha en v.4 a v.5, por ende tuve bastantes problemas como los descritos por ti, un tema importante es inicializar todas las variables, lo que hice fue en un archivo funciones.inc.php generar estas funciones, que descargue no recuerdo donde:

    <?php
    function checkpost($campo, $msg, $tipo=""){
        if (isset($_POST[$campo])){
              if ($tipo == "num") {
                   if (is_numeric($_POST[$campo])) {
                        return trim($_POST[$campo]);
                   }else{
                        return 0;
                   }
    
              } elseif ($tipo == "array"){
                   return $_POST[$campo];
              } else {
                   return trim($_POST[$campo]);
              }
         }else{
              return $msg;
         }
    }
    
    function checkget($campo, $msg, $tipo=""){
         if (isset($_GET[$campo])){
              if ($tipo == "num") {
                   if (is_numeric($_GET[$campo])) {
                        return trim($_GET[$campo]);
                   }else{
                        return 0;
                   }
              }
                  return trim($_GET[$campo]);
        }else{
             return $msg;
        }
    }
    ?>
    

    luego en la todas las pagina donde recibo parametros ya sea por post o get coloco lo siguiente.

    procesa.php:

    include_once("../includes/funciones.inc.php");
    
    $var1=checkpost("var1","");
    $var2=checkpost("var2","");
    $var3=checkget("var3","");
    
    $var4=0;
    ....
    
Ayuda rápida para las varias cosas que nos ayudan a programar más ágilmente pero que no son fáciles de recordar Autocompletado Funciones: Control-x Control-ó Volver al último punto donde estábamos, la última vez que lo abrimos 'ó Ir a la función con el nombre sobre el que estamos. gf o Crtl + clic de ratón Borrar espacios en blanco inútiles en programación al final de lineas. :%s/ * $//gcI...
Screen nos permite trabajar en un ordenador en red ysin cerrarse los procesos en marcha cuando lo abandonemos. Lanzar screen con identificador de sesión screen -t Para salir de screen sin cerrar el programa CTRL + a + d Recuperamos sesión screen -d -r Ver como va nuestro proceso screen -t bit -X hardcopy && cat hardcopy.0 Teclas Control a y S Dividir ventana Control a y Control i Cambiar entre ventanas Control a + Aumentar ventana Co...
tags: git, Control de versiones Iniciar control de versiones en proyecto existente git init git add . git commit -m 'Iniciamos control de versiones' Comandos basicos git add <archivo> # Añadir archivogit mv <archivo> <destino> # Mover archivogit rm <archivo> # Borrar archivogit status # Ver estado...
Script para detectar enlaces y generar el código automáticamente Función que remplaza los enlaces planos por enlaces html: function replaceURLWithHTMLLinks(text) { var exp = /(b(https?|ftp|file)://[-A-Z0-9+&@#/%?=~_|!:,.;]*[-A-Z0-9+&@#/%=~_|])/gi; return text.replace(exp,"<a href='$1'>$1</a>"); } Forma de utilizarla: var elements = document.getElementsByClassName('contingut_comentari'); for(var i = 0;i < elements.length;i++) { e...
Activar precio único para envío de pedido Activar módulos "Weight quote", "shipping quotes" y "flatrate" Dar permisos a webmaster para trabajar con los módulos. Activamos "shipping quotes" en admin/store/settings/cart/edit/panes Configurar en admin/store/settings/quotes/methods/flatrate Añadimos dos conceptos: Enviar pedido a casa: 4€ Recogida en tienda: 0€ Opciones de proceso de compra [1] Enable checkout (disable to only use thi...
Borrar cache ir a admin/setting/performance o truncar las tablas cache_* Manipulando el código generado de views MarioAraque Fecha de Ingreso: octubre-2009 Ubicación: Valencia Mensajes: 816 Respuesta: Manipulando el codigo generado de VIEWS Si que podes editar ese codigo. Es muy facil te voy a poner los pasos a seguir: Dentro de cada display de una vista tenes una opcion llamada "Theme information". Pincha ahi y veras distintas opciones para las cuales hacer override. Las mas...
Si queremos ver el servidor apache de la maquina virtual, por ejemplo. Al configurar la maquina virtual en el apartado de red en 'conectado a' seleccionar 'Adaptador puente' Nombre: El dispositivos con el cual conectáis a internet en mi caso 'wlan0' En el sistema virtualizado se configura una ip que sea valida para el router en mi caso el archivo /etc/network/interface queda.: auto eth0 iface eth0 inet static address 192.168.0.180 netmask 255.255.255.0 broadcast 192.168.0.255 gateway 192.16...
Al modificar de ventana con ALT-TAB se muestran todas las ventanas, cuando lo que quiero es cambiar entre las del escritorio actual. Activar 'shift switcher' en el administrador de compiz con las opcines: Next windows -> ALT-TAB Previous windows -> ALT-SHIFT-TAB Se genera conflicto con 'switcher' resolver en favor de 'shift switcher' Atajos de teclado: CTRL-X Abrir terminal CTRL-E Abrir evolution CTRL-F Abrir firefox Desde configuración del sistema -> teclado -> atajos....

Usuario:

Contraseña:


ojo.gif
www.mamedu.com
Webmaster