• ENTRAR
  • No hay productos en el carrito.

Segurida en campo oculto (Trabajo con formularios II)

Viendo 9 publicaciones - del 1 al 9 (de un total de 9)
  • Autor
    Publicaciones
  • #6023

    Miguel
    Participante

    Hola,

    Hoy estoy pregunton. En el formulario usas un campo de tipo hidden para pasar el user_id. ¿Esto no es exponer datos que deberian estar ocultos? ¿Hay alguna otra forma de pasar este dato?

    Saludos

     

    #6064

    Cursosdesarrolloweb
    Jefe de claves

    Hola Miguel,

    Yo normalmente los utilizo, pero suelo utilizar este package el cual nos permite codificar los ids de forma sencilla.

    Lo que suelo hacer es crear un modelo global utilizando $appends y el método getHashIdAttribute para tener disponible la id de cada modelo siempre codificada, así al exponer ese dato no hay ningún problema ya que son datos codificados con un hash.

    
    public $appends = ['hashid'];
    	
    public function getHashIdAttribute()
    {
    	return Hashids::encode($this->attributes['id']);
    }
    

    A partir de aquí cada modelo que extienda del modelo global tendrá un hashid codificado al cual se podrá acceder con $model->hashid.

    Aún exponiendo el id, no es problema, aunque lo expongas como un campo oculto, si tienes bien asegurado tu backend, no deberías tener ningún problema.

    Saludos.

    #6084

    Miguel
    Participante

    Buenas noches,

    Uffff me “rompiste”.

    Lo que suelo hacer es crear un modelo global….A partir de aquí cada modelo que extienda del modelo global

    Eso seria asi

    
    class ModeloGlobal extends Model
    {
    public $appends = ['hashid'];
    
    public function getHashIdAttribute()
    {
    return Hashids::encode($this->attributes['id']);
    }
    }
    
    class MyModelo extends ModeloGlobal
    

    Saludos

    #6093

    Cursosdesarrolloweb
    Jefe de claves

    Justo, una vez instalas el package hashids, debes publicar sus recursos con el comando php artisan vendor:publish para crear el archivo config/hashids.php, ábrelo y modifica main por lo siguiente.

    
    'main' => [
        'salt' => env('APP_KEY'),
        'length' => '15',
        'alphabet' => '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ-',
    ],
    

    Para tener algo más seguro, a partir de ahora todos los modelos que extiendan ese modelo con la configuración que hemos hecho tendrán un nuevo atributo llamado hashid.

    Para comprobar que es correcto el hash enviado en cada petición, puedes hacer algo similar a lo siguiente, perfectamente lo puedes añadir en un trait que sea utilizado en el controlador Controller del que extienden el resto de controladores, o en la misma clase.

    
    public function checkId($id)
    {
    	$arrayId = Hashids::decode($id);
    	if( ! isset($arrayId[0]) )
    	{
    		abort(401);
    	}
    	return $arrayId[0];
    }
    

    Y después simplemente antes de procesar nada cuando recibas el hash, sea por url o desde un formulario.

    
    public function edit($hash)
    {
    	$id = $this->checkId($hash);
    }
    

    Saludos Miguel.

    #6097

    Miguel
    Participante

    Buenos dias,

    Muchas gracias por la aclaracion. Me ha quedado claro del todo, en cuanto acabe el curso a pensar algun ejemplo para aplicar todo lo aprendido en este curso, que es mucho. Ademas me pasa como a ti, muchas ideas en la cabeza pero para aplicar realmente ninguna. Esto de apreder a cierta edad por hobby tiene sus ventajas.

    Gracias

    #6099

    Cursosdesarrolloweb
    Jefe de claves

    Todo es cuestión de echarle ganas, y a ti de eso te sobra, así que no vas a tener ningún problema, a más de uno con 20 años le gustaría.

    Saludos Miguel.

    #6101

    Miguel
    Participante

    Igual lo que propongo es un disparate pero…..no sulo quedarme con las dudas nunca.

    Ahi voy, entre las personas que estan haciendo este curso ( o quien consideres oportuno ) plantear un proyecto entre todos (gestion una biblioteca, gestion stock, …) y entre todos acometer dicho trabajo.

    Saludos

    #6112

    Cursosdesarrolloweb
    Jefe de claves

    Hola Miguel,

    Eso ya es más complicado, piensa que ni todos tienen esa voluntad, ni todos asimilan las cosas con la misma velocidad, por no hablar que hay una diferencia horaria de alrededor de 7 horas con los usuarios de la plataforma al 50%, personalmente no lo veo demasiado factible.

    Saludos.

    #6119

    Miguel
    Participante

    Buenos dias…

    Ya imagine que seria muy complicado pero no me podia quedar con la duda. Gracias por tu interes.

    Saludos

Viendo 9 publicaciones - del 1 al 9 (de un total de 9)

Debes estar registrado para responder a este debate.

Síguenos en las redes sociales para estar al tanto de los últimas novedades :)

Facebook
Facebook
Google+
Google+
https://www.cursosdesarrolloweb.es/forums/topic/segurida-en-campo-oculto-trabajo-con-formularios-ii">
YOUTUBE
Pinterest
Pinterest
top
Cursosdesarrolloweb ©. Todos los derechos reservados.
MASTER VUEJS, hazte experto en Vuejs 2 al mejor precio (ÚLTIMOS DÍAS)Más información
+ +

Login

Create an Account Back to login/register