Nueva pregunta

Pregunta:

 
  0  
 
Fecha: 07-10-2018 15:53:30 (En Español)

¿Cuál es la forma correcta de implementar un CRUD profesionalmente?[Resuelta]

Al enviar datos via GET en la eliminación y/o actualización se ensucia la URL, podria configurar el archivo .htaccess en el caso del servidor local y hacerlo friendly o enviar los datos por POST en un formulario creado dinamicamente o podria usar tecnologias como AJAX o alguna otra forma. Y que implicancias en cuanto a seguridad entre uno y otro caso representan? tengo poco tiempo de haber decidido aprender este lenguaje.
Muchas gracias de antemano.
Etiquetas: AJAX - CRUD - Javascript - JSON - MVC - MySQL - PHP - PHP Avanzado - PHP PDO - PHP7 - POO Votos: 0 - Respuestas: 3 - Vistas: 29 Compartir en: Google Facebook Twitter LinkedIn Link
 

Respuestas:

  • Fecha: 08-10-2018 06:41:54 En lo personal yo utilizo cada tipo de petición para lo que son, por ejemplo:

    GET: lo utilizo solo en los casos de requerir información desde mi base de datos.
    POST: los uso solo para inserciones, registros, actualizaciones y eliminaciones.

    En cuanto a la seguridad existen vulnerabilidades en todas, al final depende de como tengas implementada la vía de procesamiento de la data que llega a tus métodos, siempre se deben escapar los datos que llegan para limpiarlos de etiquetas no deseadas, también mantenerse actualizado sobre librerías deprecadas o en desuso por php, sobre todo en el caso de mysql, se debe utilizar mysqli en sus variantes por procedimientos o objetos, también esta PDO para el manejo de las bases de datos.

    por ejemplo en php 7.4 se va a poder manejar los tipos de propiedades para incrementar la seguridad de los objetos, es decir, se va a poder indicar que tipo de propiedad o dato recibe de manera estricta:

    
    class Example {
        // All types with the exception of "void" and "callable" are supported
        public int $scalarType;
        protected ClassName $classType;
        private ?ClassName $nullableClassType;
    
        // Types are also legal on static properties
        public static iterable $staticProp;
    
        // Types can also be used with the "var" notation
        var bool $flag;
    
        // Typed properties may have default values (more below)
        public string $str = "foo";
        public ?string $nullableStr = null;
    
        // The type applies to all properties in one declaration
        public float $x, $y;
        // equivalent to:
        public float $x;
        public float $y;
    }
    
    

    Fuente: https://laravel-news.com/php7-typed-properties


    De igual manera se debe ser estricto con el tipo de dato a esperar y a registrar en tus tablas, mientras más varchar uses, más vulnerable eres y si lo vas a utilizar, limita la cantidad de caracteres por el dato a esperar, de esa manera truncas posibles inyecciones en tu base.

    Implementar medidas para saber si las peticiones son desde dentro de tu server o fuera de este y para los casos de apis, utilizar tokens de seguridad para evitar ataques externos a tu sistema, de esa manera minimisas ataques XSS o CSRF por nombrar algunos.

    el cuento es largo y va a ir cambiando de acuerdo a contexto de tus módulos o implementaciones, en todo caso la seguridad esta en 10% tus formularios, 90% tu backend.

    y porque 10% tus formularios?, porque pueden ser manipulados desde el navegador, pero tu backend no.
      Votos: 0 - Link respuesta
     
  •  
      0  
     
    Fecha: 08-10-2018 10:03:42 No tenía idea de la vulnerabilidad sobre la definición de datos tipo varchar en los campos de la base de datos, pero ahora que lo pienso es lógico. Por otro lado, no me quedo muy claro lo de las peticiones desde dentro del servidor, y lo de los tokens tampoco lo sabía.
    Y con los dos últimos párrafos me abriste la cabeza, Muchas Gracias Carlos Quinteros.
    Por mi parte esperare más información.
      Votos: 0 - Link respuesta
     
  • Fecha: 11-10-2018 13:18:47 la forma correcta es enviar tokens y todos los datos del formulario mediante un post emitido a través de un Ajax y jquery encriptando los datos sencibles tales coo DNI o Ids de la base de datos, si requiere algo más seguro puedes encriptar todo el JSON y luego Desencriptarlo al llegar al servidor   Votos: -1 - Link respuesta
     
Para participar activamente de la comunidad primero debes autenticarte, ingresa al sistema.Iniciar Sesión
 
frjcbbae garagebible.com