Muy de acuerdo, pero como bien dice cavoso, es una ayuda... el resto lo puede obtener buscando en foros y hasta en la misma página oficial de PHP. El que busca siempre encuentra...
En lo que a mi respecta, en todo lo relacionado a la seguridad yo no escatimo en pasos y prefiero irme por el camino largo.
Primero tengo una clase que hace de "puente" entre el código y todas las entradas proveídas por el usuario. Entonces al pedir el dato (ejemplo :$miclase->obtener("POST","nombre")esta clase realiza las siguientes funciones:
1.- Limitar el largo (o de lo contrario te meten un nombre de 80.000 caracteres = buffer overflow), si es un nombre entonces puedo esperar un máximo de no más de 50 caracteres y todas las operaciones posteriores se realizarán a partir de esos caracteres, jamás sobre el nombre original.
2.- A partir de la cadena generada, filtrar con regex basándose en un whitelist. Si estoy esperando un nombre entonces esperaré letras de la a a la z, minúsculas y mayusculas, nada más.
3.- Nunca iterar el POST o el GET, el atacante puede crear un formulario que te meta 10.000 variables = te cuelga el sistema.
4.- En lo posible, generar tokens, es más avanzado pero ayuda a que solo se puedan usar ciertos formularios. A veces simplemente no funciona porque recuerdo que hace tiempo hice un programa que posteaba en el P.D.O.del portal de forma automatizada para ganar posts (bot) y que de paso renovaba el token de login cuando este vencía. Nada del otro mundo por acá.
5.- Otras prácticas (usar nombres de variable no tan obvios, solo llamar las variables que se van a necesitar, etc).
Saludos.
por ese mismo motivo yo uso codeigniter, viene con muchos parametros de seguridad, de echo no puedes llamar un post si este no existe cosa que si puedes hacer en php normal xD, ademas de que te permite trabajar con comit en las consultas sql xD
Por un lado eso es bueno, por el otro, nunca me ha gustado usar frameworks para la seguridad porque como cualquier habitante del planeta tierra puede ver el código entonces los hax0rs ya tienen decubiertos los exploits hace rato. En cambio cuando tu haces el código entonces el atacante tiene que figurarse un montón de cosas primero: Que engine de regex usas, si usas sqlite, mysql, block de notas, etc. Si el resultado está cacheado o no, etc. etc. etc. etc.) Ahí la mayoría se aburre.
Saludos.
Eso se puede hacer con php o con ajax. php sería para algo estático, o sea que el visitante tendría que enviar el formulario y el server le responde.
Ajax hace lo mismo pero "no se nota", Javascript detectaría el cambio en el formulario, mandaría la información a un script php y con los datos obtenidos modifica el frame mediante el DOM.
Saludos.
asdasd a lo que me refiero es que codeigniter es un framework que corre en php, por lo que lo puedes modificar a tu gusto trbajando en formato MVC
Oh perdona, no me habia fijado que este post era viejo y mi última respuesta iba hacia el primer post.
Saludines!