elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Trabajando con las ramas de git (tercera parte)


  Mostrar Mensajes
Páginas: 1 2 3 4 5 6 7 8 9 10 11 12 [13] 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 ... 60
121  Programación / Desarrollo Web / Re: apache server en: 9 Septiembre 2012, 15:04 pm
comprueba que los servicios se han iniciado correctamente y revisa que el puerto no esta ocupado por ningún programa que estés usando.
122  Foros Generales / Foro Libre / Re: ¿Os gusta ver (o no) la television? en: 9 Septiembre 2012, 02:02 am
Lo único qué veo es Salvados de Jordi Evole y al rojo vivo... y lo veo todo desde su web xD.

Creo que ni tengo cable de antena.
123  Foros Generales / Noticias / Re: Nokia humillada tras revelarse engaño Lumia 920 en: 9 Septiembre 2012, 00:49 am
jojojo, como mola xD
124  Programación / Desarrollo Web / Re: A ver qué os parece mi web en: 8 Septiembre 2012, 17:33 pm
Crear un archivo llamado .htaccess y añades los siguiente:

Código:
Options -Indexes
125  Programación / PHP / Re: mensajes en una web en: 8 Septiembre 2012, 01:06 am
Lo que puedes hacer es una comprobación cada X segundos con AJAX y compruebe si hay nuevos mensajes, lo ideal para esto es que hagas un api y la respuesta sea en JSON.

Aquí tienes un mensaje sobre la tecnología AJAX:
http://foro.elhacker.net/desarrollo_web/ajax_asynchronous_javascript_and_xml-t90135.0.html

Salu2
126  Programación / Desarrollo Web / Re: ¿Qué debería aprender? en: 7 Septiembre 2012, 22:35 pm
Pienso como dimitrix, tienes que estudiar algo pq realmente et guste y te apasione, yo empece a estudiar programación desde que tenia 13 años pq era algo que me apasionaba, al igual que estudio ahora economía y política...

Respecto a tu pregunta... Yo te recomiendo que empieces primero con C, ya que esto te dará unas grandes bases para el resto de lenguajes de programación que quieras aprender.
127  Seguridad Informática / Nivel Web / Re: ¿Como le busco vulnerabilidades a una web? en: 7 Septiembre 2012, 22:07 pm
Leyendo, leyendo muchisimo y una vez que hayas leído lo suficiente, sabrás como hacerlo y tb sabrás que esta pregunta ya la hicieran antes que tu ^^ y el secreto de internet es eso... aprovecharse de lo que alguien pregunto en su día y así no tienes que preguntarlo :P.

Un saludo!
128  Programación / Desarrollo Web / Re: A ver qué os parece mi web en: 7 Septiembre 2012, 21:33 pm
¡Hola!, lo primero que te diría es que cumplieras todos los estándares de XHTML 1.1, que es el que estas utilizando, te recomiendo que entres en el validados de la w3c (click me!) ahí te dirán que errores tiene tu web a nivel de estándares.

Algunas cositas por encima:
  • Elimina los indices del servidor, lo puedes hacer desde el htaccess.
  • Usa HttpOnly en tus sesiones.
  • La búsqueda por mucho que la estés cacheando es demasiado lenta, están generando mal la consulta o bien tienes un error en la arquitectura de la base de datos.

Por ultimo decirte que si quieres hacer una web profesional y que este segura, lo mejor es que hagas alguna auditoria con algún profesional del sector.

Saludos!
129  Programación / Desarrollo Web / Como utilizar BrowserID en: 26 Junio 2012, 14:48 pm
BrowserID:

¿Qué es BrowserID? Browser ID es un nuevo servicio implementado por Mozilla, que permite que los usuarios puedan controlar sus accesos a diferentes sitios de manera más segura, ejecutándose las funciones en el mismo navegador y comprobando la identidad de los usuarios en base a criptografía asimétrica.
En internet ya existen otros servicios parecidos como por ejemplo OpenID o sistema de identificación por Facebook.

¿Cuales son las ventajas de BrowserID?
  • Pueden identificarse con la misma cuanta en cualquier sitio que tenga implementado BrowserID.
  • Su registro es muy sencillo, solo tienes que poner email y contraseña, una vez hecho esto verificarla y listo.
  • Funciona perfectamente en cualquier navegador moderno.
  • Gran soporte y mucha documentación ofrecida por Mozilla, esto facilita la vida a todos los desarrolladores.
  • BrowserID protege la privacidad de nuestra actividad en la web, no filtra datos sobre qué sitios visitan los usuarios a ningún otro servidor.

Para el ejemplo que os voy a mostrar es necesario un servidor con apache/php/openSSL y utilizar el framework JQuery.

El ejemplo su basa en dos ficheros, index.php y process.php luego podéis organizarlo como queráis:

Index.php
Código
  1. <?php session_start(); ?>
  2. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  3. <html xmlns="http://www.w3.org/1999/xhtml">
  4.    <head>
  5.        <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js" type="text/javascript"></script>
  6.        <script src="https://browserid.org/include.js" type="text/javascript"></script>  
  7.  
  8.        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  9.    <title>Ejemplo BrowserID</title>
  10.    </head>
  11.  
  12.    <body>
  13.        <script type="text/javascript">
  14.            function gotAssertion(assertion) {  
  15.                if (assertion !== null) {  
  16.                    $.ajax({  
  17.                        type: 'POST',  
  18.                        url: 'process.php',  
  19.                        data: { assertion: assertion },  
  20.                            success: function(res, status, xhr) {  
  21.                                if (res === null) {
  22.                                    //loggedOut();  
  23.                                } else {
  24.                                    var oJson = jQuery.parseJSON(res);
  25.  
  26.                                    if(oJson.status == 'okay'){
  27.                                        switch (oJson.action){
  28.                                            case 'new':
  29.                                                $('#login').html('Bienvenido ' + oJson.email);
  30.                                                break;
  31.                                            case 'old':
  32.                                                $('#login').html('Hola ' + oJson.email);
  33.                                                break;
  34.                                            case 'locked':
  35.                                                $('#login').html('Tu cuenta esta bloqueada ' + oJson.email);
  36.                                                break;
  37.                                            }
  38.                                        } else {
  39.                                            alert('Error');
  40.                                        }
  41.                                    }
  42.                                },  
  43.                                error: function(res, status, xhr) {  
  44.                                    alert("Error de conexion");  
  45.                                }
  46.                            });  
  47.                        } else {  
  48.                            //loggedOut();  
  49.                        }  
  50.                    }  
  51.  
  52.                $(document).ready(function(){
  53.                    $('#browserid').click(function() {  
  54.                    navigator.id.get(gotAssertion, {allowPersistent: true});  
  55.                    return false;  
  56.                });  
  57.            })
  58.        </script>
  59.        <?php if(!isset($_SESSION['email'])){ ?>
  60.        <div id="login">
  61.            <a href="#" id="browserid" title="Sign-in with BrowserID">  
  62.                <img src="https://browserid.org/i/sign_in_grey.png" alt="Sign in">  
  63.            </a>  
  64.        </div>
  65.        <?php } else { echo "hola " . $_SESSION['email']; } ?>
  66.    </body>
  67. </html>

process.php
Código
  1. <?php session_start();
  2.    class browserID {
  3.        const REMOTE_URL = 'https://browserid.org/verify';
  4.  
  5.        /**
  6.           * Datos cifrados de la session.
  7.           * @var string
  8.           */
  9.        private $_assertion;
  10.  
  11.        /**
  12.           * Dominio.
  13.           * @var string
  14.           */
  15.        private $_localURL;
  16.  
  17.        /**
  18.           * Solicitud que se envia a Mozilla.
  19.           * @var array
  20.           */
  21.        private $_QueryHTTP;
  22.  
  23.        /**
  24.           * Respuesta de Mozilla.
  25.           * @var string
  26.           */
  27.        private $_RequestJSON;
  28.  
  29.        /**
  30.          * Contructor principal, define los atributos _assertion y _localURL
  31.          * Una vez definidos carga la solicitud HTTP desde el metodo build_query().
  32.           *
  33.           * @param string $assertion Datos recibidos por el $_POST.
  34.          * @param string $localURL Dominio en el que estas enviando la solicitud.
  35.          */
  36.        public function __construct($assertion, $localURL){
  37.             $this->_assertion = $assertion;
  38.             $this->_localURL = $localURL;
  39.  
  40.             $this->build_query();
  41.        }
  42.  
  43.        /**
  44.          * Comprueba si fue satisfactoria la indetificación y nos devuelve un booleano.
  45.           *
  46.          * @return bool retorna true si es correcto.
  47.          */
  48.        public function get_is_login(){
  49.            if($this->_RequestJSON->status == 'okay') return true;
  50.        }
  51.  
  52.        /**
  53.          * Recogemos la dirección de correo de la indentificación
  54.           *
  55.          * @return string dirección de correo.
  56.          */
  57.        public function get_email(){
  58.            if($this->get_is_login()===true) return $this->_RequestJSON->email;
  59.        }
  60.  
  61.        /**
  62.          * Fecha en la que expira la sessión.
  63.           *
  64.          * @return int retorna la fecha en formato unix.
  65.          */
  66.        public function get_expire(){
  67.            if($this->get_is_login()===true) return $this->_RequestJSON->expires;
  68.        }
  69.  
  70.  
  71.        /**
  72.          * Cambia el dominio.
  73.           *
  74.          * @param string $localURL Dominio en el que estas enviando la solicitud.
  75.          */
  76.        public function set_local_url($url){
  77.            $this->_localURL = $url;
  78.        }
  79.  
  80.        /**
  81.          * Envia la petición anteriormente creada por el metodo build_query.
  82.          *
  83.          * @param bool retorna true si todo salio correcto.
  84.          */
  85.        public function set_http_request(){
  86.            $ctx = stream_context_create($this->_QueryHTTP);
  87.            $fp = fopen(self::REMOTE_URL, 'rb', false, $ctx);
  88.  
  89.            if ($fp) {
  90.                $result = stream_get_contents($fp);
  91.                $this->_RequestJSON = json_decode($result);
  92.  
  93.                return true;
  94.            }
  95.        }
  96.  
  97.        /**
  98.          * Contruimos la petición HTTP que sera enviada a Mozilla.
  99.           *
  100.          */
  101.        private function build_query(){
  102.            $httpArray =    array('assertion' => $this->_assertion,
  103.                                  'audience'  => urlencode($this->_localURL));
  104.  
  105.            $data =     http_build_query($httpArray);
  106.            $this->_QueryHTTP = array('http' => array( 'method'  => 'POST',
  107.                                                       'content' => $data,
  108.                                                       'header'  => "Content-type: application/x-www-form-urlencoded\r\n"
  109.                                                                  . "Content-Length: " . strlen($data) . "\r\n")
  110.                                      );
  111.        }
  112.    }
  113.  
  114.    //Creamos el objeto y damos los argumentos, es importante enviar el dominio correcto.
  115.    $objBrowserID = new browserID($_POST['assertion'], 'www.tusitioweb.com');
  116.  
  117.    if($objBrowserID->set_http_request()){
  118.        if($objBrowserID->get_is_login() === true) {
  119.             //Aqui se tendria que comprobar en nuestra base de datos si existe el usuario o en su defecto, crearlo.
  120.             $_SESSION['email'] = $objBrowserID->get_email();
  121.             $_SESSION['assertion'] = $_POST['assertion'];
  122.  
  123.             $json    = array( 'status' => 'okay',
  124.                               'action' => 'new',
  125.                               'email'  => $_SESSION['email']);
  126.        }
  127.  
  128.        echo json_encode($json);
  129.    }
  130. ?>

Espero que os haya podido ayudar en alguno, para mas información sobre BrowserID: https://developer.mozilla.org/en/BrowserID/
130  Programación / Desarrollo Web / Re: Recargar colunna de una Tabla sin refrescar la pagina web. en: 25 Junio 2012, 14:30 pm
getElementById lo único que hace es obtener el identificador de un elemento en el DOM, luego con innerHTML estas modificar el HTML que tiene encapsulado ese elemento. Realmente no estas conectándote al servidor en ningún sitio, todo lo estas ejecutando en el cliente, no necesitas conectarte el servidor.
Lo que debes hacer es actualizar el div según los eventos onclick en las diferentes imágenes y todo eso se hace en el cliente.

Te recomiendo que utilices debug que tiene el firebug, si verifiques cual es el error que tienes.

Por otro lado, si lo que quieres es hacer peticiones desde el servidor al cliente, deberás mantener una conexión abierta entre el cliente y el servidor web, para esto puedes usar comet.

Un saludo.
Páginas: 1 2 3 4 5 6 7 8 9 10 11 12 [13] 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 ... 60
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines