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

 

 


Tema destacado: Curso de javascript por TickTack


  Mostrar Temas
Páginas: 1 2 [3] 4 5 6
21  Programación / PHP / Sistema de permisos con PHP en: 9 Agosto 2009, 16:42 pm
Buenas,
Antes de todo, gracias por sus ayudas en los post anteriores.
Hasta ahora he estado comprobando permisos con un campo en la DB con el nivel del usuario... pero ahora necesito asignar diferentes niveles (Lectura, escritura, borrar) por cada modulo, y si son unos 12 modulos por ejemplo, no creo que la solucion sea crear 36 columnas en una tabla de mysql...
He leido por ahi, que puede hacerse utilizando la comparacion a bit de php, pero realmente no lo entendi demasiado bien.
Cual es el metodo mas optimo y flexible (cada cuenta tendra unos modulos u otros) que puedo utilizar?
Mil gracias.
Saludos.
22  Programación / PHP / Sobre seguridad al subir imagenes en: 3 Agosto 2009, 04:39 am
Buenas,
Mi actual proyecto exige que se puedan subir unas pequenias imagenes a modo de foto de cada usuario.
La verdad es que soy completamente novato en esto de subir archivos.
La forma de subirlo y demas, ya la busco yo. Lo que necesito es que me den consejos de seguridad.
Siempre me ha dado mal royo esto de permitir subir archivos, y ahora mas, cuando leo en un articulo que segun la configuracion de apache de mi hosting, podria ejecutarse php con una imagen llamada lokesea.php.gif y puf...
Tambien quisiera saber si aumenta el riesgo al usar la siguiente tecnica para ocultar la direccion, al usar readfile para cargar la imagen en el buffer:
Ocultar la direccion de una imagen con php

Gracias!!!
23  Programación / PHP / Que falla en la funcion? en: 11 Abril 2009, 16:03 pm
Buenas, tengo una funcion de limpiado de variables que me da problemas... es esta:
Código
  1. function limpiar($var,$cars=''){
  2.            $cars_ok = '/[^a-zA-Z0-9'.preg_quote($cars,'/').']/i';
  3.            $var = preg_replace($cars_ok,'',$var);
  4.        return $var;
  5. }
Al llamarla de la siguiente manera:
Código
  1. $name = limpiar($name,')(@-_.,!$?¿ ');
Esto deberia hacer que admitiera letras, numeros y todos los caracteres que se muestran: )(@-_.,!$?¿
Pero sin embargo tambien pasa como bueno los corchetes [], el simbolo ^ y mil cosas que no sabre...
Que le ocurre?

Gracias :D

Solucionado:
Solo hay que escapar el caracter - porque lia al motor de expresiones...
24  Programación / PHP / [MYSQL] Problema con float en: 29 Marzo 2009, 19:13 pm
Buenas, tengo un pequeño problema que me esta volviendo loco.
En un campo float(20,2) intento insertar el numero 891985.80, pero siempre lo guarda como 891985.81
Sin embargo en otro campo igual, si es capaz de guardar cosas como 0.45 etc y no cambia el decimal.
No solo pasa con ese numero, sino que siempre hace cosas raras con decimales, como considerar que 1.42 es 2

¿Que puede ser?

Gracias :D
25  Programación / PHP / [MYSQL] Dudas de rendimiento en: 26 Marzo 2009, 19:22 pm
Buenas, estoy montando un sitio que genera grandes cantidades de registros por cada usuario, y estoy preocupado por si la columna que tiene el ID, qe ahora es un INT de 11, pudiera algun dia en el futuro a que un numero demasiado grande no pudiera ser soportado por la tabla, estamos hablando de que un usuario puede causar unos 50 registros diarios, y sea una cantidad grandecita de usuarios. Claro que no llegara ese momento ahora mismo, pero queria saber si luego es facil pasarlo a BIGINT o tendria algun riesgo...
Mi otra duda es sobre como funciona MySQL al hacer consultas, por si deberia de poner el campo de texto de 255 en la ultima columna o eso no tiene importancia alguna.

Gracias, y disculpen mi ignorancia.
PD: Antes usaaba MySQL para operaciones simples como foros, y demas, pero ahora que me interesaria aprender a montar una DB optima para grandes datos, ven logicos comprar algun libro sobre MySQL o no es necesario? Que consejos me darian?
26  Programación / PHP / [PHP] Include dentro de una funcion en: 19 Marzo 2009, 17:02 pm
Buenas,
Cada dia se me presentan mas includes al principio de cada fichero... y queria hacer una funcion de Cargar() asignando en los parametros si usare una db o el motor de templates... y para ello necesitaria incluir los ficheros dentro de la funcion... pero no se puede... hay forma? o se les ocurre alguna otra idea?

Gracias!
27  Programación / PHP / [PHP + MYSQL] Incrementar valor de un INT en: 23 Febrero 2009, 15:59 pm
Buenas,
Tengo una dudilla... estoy escribiendo un sistema de foros desde 0 (Que cuesta arriba se me está haciendo! Mas que nada por que cada dia hay mas lineas de codigo y eso me stresa jaja) y en una de las partes, tengo que incrementar en 1 o restarselo la cantidad de mensajes que tiene un cierto foro...
Para eso actualmente recojo el valor actual de los mensajes, le resto uno, y lo vuelvo a subir con un UPDATE.
Sé que todo eso se hace en cuestion de microsegundos, pero es posible que en los tiempos mas concurridos del foro al hacer 2 peticiones simultaneas se lien las operaciones... ? Vamos, que al momento de recojer el valor, otro lo incremente y yo haga el UPDATE con el valor erroneo.
Si fuera asi... Cual es la manera logica de hacer este tipo de operaciones?

Gracias.
28  Programación / PHP / Que finalidad tiene esto? en: 7 Febrero 2009, 22:55 pm
Buenas,
A ver si me pueden ayudar a entender que hacen estas 2 lineas de codigo...
   
Código
  1. if(get_magic_quotes_gpc()) $string = stripslashes($string);
  2. return mysql_real_escape_string($string);
A mi entender, al detectar las magic quotes activadas les quita las barras para luego volverselas a poner con mysql_real_escape_string();
Estas lineas las encontre en una clase para conectar con mysql.
No seria mas logico lo siguiente?
   
Código
  1. return $string;

El problema es que esta clase cuando te devulve un query les quita de nuevo las barras con stripslashes, y ya me tiene loco! Si lo dejo como viene me borra la mitad de las barras que introduce el usuario (y solo quiero escaparlas para evitar sql injection, no borrarlas) y si lo quito si que me devulve la cadena tal y como la introduzco... por lo cual no se habrian escapado los caracteres en el query...

Gracias!
PD: Estudiando mi script, me doy cuenta de que aunque get_magic_guotes_gpc() devuelve TRUE en el servidor, realmente no escapa ningun caracter y me esta volviendo loco!

EDITO:
Es posible hacer algo malicioso si escapo las comillas con htmlentities y dejo todo lo demas? Asi me evito todos estos lios de slashes y demas...
29  Programación / PHP / Necesito idea para organizar mi tabla en: 6 Febrero 2009, 19:31 pm
Buenas!
Recientemente me puse a escribir mi propio foro php desde 0 y aun estoy algo cortito...
He creado 2 tablas en mysql, una para la lista de los temas creados, y otra con los posts que los rellenan.
El problema esta en que al hacer un inset con el titlo, autor... del nuevo tema, al mismo tiempo tengo que publicar el primer post de ese tema que debe de tener el id del tema y demas para luego saber que pertenece a el...
  • Si utilizo mysql_inset_id() para obtener el id del primer insert y estan publicando otro al mismo tiempo, no se liaran las id´s?
  • Existe la posibilidad de que un usuario intente ver el tema cuando se ha incluido el primer insert, pero aun no se haya hecho el insert con el primer post?
Gracias!
30  Programación / PHP / Mi funcion para limpiar variables en: 5 Febrero 2009, 18:19 pm
Buenas,
Recien acabo de escribir una funcion PHP para filtrar una variable segun algunas condiciones... Les dejo el codigo por si a alguien le sirve, y de paso si tienen ganas, espero criticas para mejorarla, o ideas para que sea mas comoda.

Código
  1. <?php
  2.  
  3. /**
  4.  * @autor Alex_Broadcast
  5.  * @desc Funcion para filtrar variables.
  6.  * @uso: filtra_var(Cadena, Numeros?, Letras?, Minimo, Maximo, Especiales?, Para DB?);
  7.  * Por defecto las letras y los numeros si se permiten y no tiene MAX ni MIN.
  8.  */
  9.  
  10. function filtra_var($var,$num=1,$let=1,$min=0,$max=0,$exp=0,$db=0){
  11. if($num == 0) $var = preg_replace("/[0-9]/",'',$var);
  12. if($let == 0) $var = preg_replace("/[a-zA-Z]/",'',$var);
  13. if($max != 0){ $long = strlen($var);
  14. if($min > $long || $long > $max){ return FALSE;} }
  15. if($exp != 1) $var = preg_replace("/^[a-z0-9]$/i",'',$var);
  16. if($db == 1){ //Si $var va a un query SQL...
  17. $var = htmlentities($var, ENT_QUOTES);
  18. if(get_magic_quotes_gpc()) $var = stripslashes($var);
  19. }
  20. return $var;
  21. }
  22.  
  23. /* Ejemplo: Solo numeros, y de 2 cifras minimo, 6 maximo */
  24. $edad = filtra_var($edad,1,0,2,6,0,0);
  25.  
  26. /* Ejemplo: Solo numeros, sin MIN ni MAX */
  27. $edad = filtra_var($edad,1,0);
  28.  
  29. /* Ejemplo: Numeros y letras, 3 MIN, 9 MAX */
  30. $edad = filtra_var($edad,1,1,3,9);
  31. ?>

La filtracion para evitar SQL INJECTION no se si es la mas optima, pero yo en mis paginas usaba ademas de todo eso funciones propias de MYSQL y no queria incluirlas en la funcion por si al ejecutarla aun no tenian una conexion establecida... cuestion de adaptarla a sus necesidades.

Saludos!
Páginas: 1 2 [3] 4 5 6
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines