Título: Logins seguros Publicado por: ElInquisidor en 17 Mayo 2016, 18:29 pm Alguien sabe como se debe proceder :huh: :huh: :huh: :huh: :huh: :huh: :huh: :huh: :huh: :huh: :huh: para hacer un login super seguro
Título: Re: Logins seguros Publicado por: engel lex en 17 Mayo 2016, 18:47 pm Las claves comparlas en sha y los usernames pasalos a la db en base64 o sha puedes hacer
Código
Y el PHP Código
Esto lo que hara es convertir el usuario a base64 y le dirá a la db que compare con los usuarios convertidos en base64 (esto consume algo de procesador asi que puedes precompilar) y pasa las pass como hashes, esto destruye casi absolutamente las posibilidades de una inyeccion Título: Re: Logins seguros Publicado por: ElInquisidor en 26 Mayo 2016, 01:03 am no hay algo mas elaborado :silbar:
Título: Re: Logins seguros Publicado por: Pablo Videla en 26 Mayo 2016, 01:11 am Aqui tienes algo super elaborado.
https://github.com/PHPAuth/PHPAuth Título: Re: Logins seguros Publicado por: daniela Vega en 30 Mayo 2016, 21:49 pm x
Título: Re: Logins seguros Publicado por: engel lex en 30 Mayo 2016, 22:45 pm daniela Vega Al publicar código debes usar las etiquetas GeSHi
por otro lado tu metodo es una forma facil que te hagan un DoS primero ya no debes usar en php la extensión mysql, ya que está obsoleta, debes usar mysqli o mysql pdo... segundo al hacer "SELECT user,pass FROM user", te estás trayendo toda la tabla, si son miles de usuarios te ocupará la ram y tiempo de ejecución se notará facilmente y su varios usuarios simplemente llaman maliciosamente (ni si quiera necesitan enviar datos porque no comprobaste primero) te van a tumbar el site Título: Re: Logins seguros Publicado por: el-brujo en 31 Mayo 2016, 12:44 pm daniela Vega ese código a parte de malo es muy viejo.
Ahora se usa el conector mysqli, no mysql Ejemplos: Código
Código
Código
Código
Y se debería usar en las sentencias SQL el parámetro LIMIT 1. Recuerda deshabilitar las "emulated prepared statements" Código
Recuerda que a partir de PHP 5.5.0 la función mysql_real_escape_string ya no existen y se debe usar la función : mysqli::escape_string Tienes más ejemplos con SMF 2.1 (BETA) que ya usa bcrypt para cifrar las contraseñas. http://php.net/manual/es/security.database.sql-injection.php https://www.owasp.org/index.php/SQL_Injection_Prevention_Cheat_Sheet Hashes con salt Los hashes con salt, son como los hashes de toda la vida pero con unplus de seguridad. En este caso el truco está en la salt que se le agrega. Salt es un número de dígitos aleatorios que se le agrega al hash ya sea al principio o al final. Con lo que los hashes ya no son los normales y por ende no figurarán en una tabla haciendo más dificil crackearlos. Ya que se deberá probar no solo con cada hash, sino tambien con cada salt y sus combinaciones. Las funciones de hash más conocidas y utilizadas eran MD5 y SHA-1, pero dado que MD5 y SHA-1 han sido comprometidas, actualmente se recomienda el uso de nuevas funciones como son SHA-2 y Bcrypt. El hecho de que los hashes sin salt no se combinaran con un valor "único" (salt) para que cada cuenta, hace que el proceso de crackeo sea mucho más rápido ya que requiere menos cálculo. Gracias al "salt", garantiza que cada hash almacenado es único, incluso si dos usuarios eligen la misma contraseña de acceso, cada uno de hash en una tabla comprometida debe ser crackeada por separado. La nueva API para codificar contraseñas de PHP 5.5 Internamente la API utiliza la función crypt() y está disponible desde la versión 5.5.0 de PHP. Si utilizas una versión anterior de PHP, siempre que sea igual o superior a 5.3.7, existe una librería con las mismas funcionalidades que la nueva API: github.com/ircmaxell/password_compat. La función más importante de la nueva API es password_hash(), que codifica la contraseña que le pases con el algoritmo indicado El primer argumento de la función es la contraseña original sin codificar y el segundo argumento debe ser una de las dos siguientes constantes - PASSWORD_DEFAULT, codifica la contraseña utilizando el algoritmo bcrypt y el resultado es una cadena de 60 caracteres de longitud, cuyos primeros caracteres son $2y$10$. El algoritmo utilizado y la longitud de la contraseña codificada cambiarán en las próximas versiones de PHP, cuando se añadan algoritmos todavía más seguros. Si guardas las contraseñas en una base de datos, la recomendación es que reserves 255 caracteres para ello y no los 60 que se pueden utilizar actualmente. - PASSWORD_BCRYPT, a pesar de su nombre, codifica la contraseña utilizando el algoritmo CRYPT_BLOWFISH. Al igual que en el caso anterior, la contraseña codificada ocupa 60 caracteres en total, siendo los primeros caracteres $2y$. El tiempo empleado en codificar una contraseña se denomina "coste" y se puede configurar mediante el tercer argumento opcional de la función password_hash(). El coste por defecto es 10 (por eso el prefijo de las contraseñas anteriores es $2y$10$) y su valor debe estar comprendido entre 04 y 31. http://php.net/manual/es/function.password-hash.php Título: Re: Logins seguros Publicado por: gAb1 en 31 Mayo 2016, 14:34 pm En el siguiente articulo (https://crackstation.net/hashing-security.htm) se pueden encontrar una serie de pasos a seguir para almacenar las contraseñas de manera segura, es algo avanzado y requiere un mínimo de conocimientos.
Pero creo que es igual o más importante el como se envian: A mí por ejemplo no me gusta que las contraseñas salgan del cliente en texto plano, por eso las hasheo con javascript. Ya sé que hay tablas, por eso, el hash también se puede saltear, aunque estoy pensando en una una manera segura de conseguir hacer esto (de que no se sepa el salt que uso en el cliente). Cuanto más largo el salt, más cuesta saltear las tablas (yo lo hasheo así ambos, hash y salt, tienen 128 caracteres). Una vez solucionado el anterior problema, ya nadie conoceria la contraseña del usuario, pero, en caso de robarle el hash podria loguear... Este es el segundo problema que surge a la hora de proteger las contraseñas. Y el primero en caso de no hashear en el cliente. No tengo en cuenta ssl porque esto es un "worst-case scenario" ;D. Se aceptan sugerencias :rolleyes: Título: Re: Logins seguros Publicado por: hectornunezrivas en 4 Julio 2016, 06:08 am Hola buenas noches.
Para hacer un login seguro pues involucra muchas cosas como cifrar passwords y las sesiones por ejemplo. te paso un link el cual te puede ayudar. http://blackbe.lt/php-secure-sessions/ Saludos |