Foros del Web » Programando para Internet » PHP »

Como validar para evitar inyecciones de codigo?

Estas en el tema de Como validar para evitar inyecciones de codigo? en el foro de PHP en Foros del Web. Hola amigos, quisiera ayuda de parte de ustedes, tengo este sistema de subir imagenes a mi servidor, pero quiero que no vayan a inyectarme codigo ...
  #1 (permalink)  
Antiguo 06/08/2020, 12:45
 
Fecha de Ingreso: octubre-2008
Ubicación: Colombia
Mensajes: 448
Antigüedad: 15 años, 6 meses
Puntos: 2
Como validar para evitar inyecciones de codigo?

Hola amigos, quisiera ayuda de parte de ustedes, tengo este sistema de subir imagenes a mi servidor, pero quiero que no vayan a inyectarme codigo malisioso ya que este formulario estará al publico.

Agradezco su ayuda por favor. Este es mi codigo que registra.

Código PHP:
<?php
include("logica/conexion.php");

$target_dir "./img_certific/";
$target_file $target_dir date('Ymd-His') . '_' basename($_FILES["comprobante"]["name"]);
$uploadOk 1;
$imageFileType pathinfo($target_file,PATHINFO_EXTENSION);
// Check if image file is a actual image or fake image
if(isset($_POST["submit"])) {
    
$check getimagesize($_FILES["comprobante"]["tmp_name"]);
    if(
$check !== false) {
        
//echo "File is an image - " . $check["mime"] . ".";
        
$uploadOk 1;
    } else {
        
//echo "File is not an image.";
        
$uploadOk 0;
    }
}



if(
$imageFileType != "jpg" && $imageFileType != "png" && $imageFileType != "jpeg"
&& $imageFileType != "gif" ) {
    
//echo "Sorry, only JPG, JPEG, PNG & GIF files are allowed.";
    
$uploadOk 0;
}

// Check file size


 
if (move_uploaded_file($_FILES["comprobante"]["tmp_name"], $target_file)) {
        
//echo "El archivo ". basename( $_FILES["foto_1"]["name"]). " ha sido cargado.";
    
} else {
        
//echo "Sorry, there was an error uploading your file.";
    
}

$sql="insert into table_certificados values 
(null,'"
.$_POST["nombres"]."','".$_POST["email"]."','".$_POST["grado"]."','".$_POST["ano_curso"]."','".$target_file."','".$_POST["mensaje"]."',now())
"
;

$res mysqli_query($conectar$sql);


echo 
"<script type=''>
    alert('Articulo realizado correctamente');
    window.location='cert_estudio.php';
</script>"
;

?>
__________________
Desarrollo de Aplicaciones de Escritorio, Sitios Web, Audio y Video en SISGUS
  #2 (permalink)  
Antiguo 07/08/2020, 14:16
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 5 meses
Puntos: 977
Respuesta: Como validar para evitar inyecciones de codigo?

Puedes recurrir a las funciones que ofrecen extensiones como PDO o MySQLi e incluso utilizar expresiones regulares.

Una forma rápida y simple consiste en utilizar las funciones strip_tags y mysqli_real_escape_string:

Código PHP:
Ver original
  1. $email = mysqli_real_escape_string($conexion, strip_tags($_POST['email']));

Existen otras funciones que pueden darte resultados similares o mejores. Te sugiero hacer una búsqueda al respecto.

__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand

Etiquetas: conexion, formulario, inyecciones, mysql, public
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 08:55.