Ver Mensaje Individual
  #13 (permalink)  
Antiguo 04/11/2011, 13:39
Avatar de SirDuque
SirDuque
 
Fecha de Ingreso: febrero-2009
Ubicación: Paso del Rey, Buenos Aires, Argentina
Mensajes: 975
Antigüedad: 15 años, 2 meses
Puntos: 89
Respuesta: procesador de envio de formulario en php "Seguro"

Cita:
Iniciado por jakie Ver Mensaje
Gracias por responderme SirDuque, estoy ... comprendiendo diferentes codigos como me recomendaste, el Tutorial ya lo lei y ya tengo el form funcionando, sin embargo he leido que para que no te Inyecten en las cabeceras o hagan spam masivo con tu form, no debe der posible que hagan un salto de pagina o línea (deben ser eliminados o causar error) en las cabeceras, por ejemplo %0A, agreguen cc, bcc, /n, /r, content type, incluso pueden enviar mensaje y contenido html. Tambien pueden modificarte las variables del la funcion mail, por lo cual deben estar validadas.
El formulario del Tutorial valida con js (cliente) y php (servidor) la pregunta y duda es: si yo voy al formulario web (que supongamos ya esta online) y soy capaz de escribir en el "Tu Nombre" una direccion de mail o ingresar salto de paginas, quiere decir que no estaria seguro y podrian atacarme ? porque veo que solo valida en el caso del nombre que haya escrito algo (que no se deje vacio), deberia tener entonces una funcion que permitiera solo letras como x ej: a-zA-Z ? y lo mismo para el campo "Pais" ($cuerpo), "Asunto" ($asunto) no ? que era lo que me estabas sugiriendo (alfanumericas) ...creo....
Tambien te agradezco la info de los freelance, no sabia que aqui en el foro los puedo encontrar.
Te agradezco si me puedes sacar la duda, porque creo que esas validaciones son para que el usuario no envie un formulario vacio, que esta bien, pero creo que con eso solo no seria seguro contra injections y spammers.
Muchas gracias de nuevo y que bueno que hay gente como vos que saben y nos dan una mano !
Código PHP:
<?php 
// solo admitir letras y numeros. 
$cuerpo preg_replace(&#8220;/[^a-zA-Z0-9s]/”, “”, $string); 
$asunto preg_replace(&#8220;/[^a-zA-Z0-9s]/”, “”, $string); 
?>
Como mensionas solo admite letras y numeros para evitar (%0A, agreguen cc, bcc, /n, /r, content type)

Tabien podes creer tu codigo si chusmeas preg_replace() vas ver que podes elimnar.... por ejemplo si te molesta content type podes poner esto:

Código PHP:
$string"texto1 texto2 content type texto3 texto4";

$cuerto =  preg_replace("content type"""$string); 
//resultado
echo $cuerpo// "texto1 texto2  texto3 texto4"; 
Con respecto a los spammers/robots etc.. El usuario caricatos tiene varios aportes sobre el tema. En Javascript
De parte del servidor (PHP) solo podes analizar el contenido y fabricar el mail segun tus directivas.
__________________
Mono programando!
twitter.com/eguimariano