Gestione parametri tra pagine

Ciao a tutti, ho un app che funzione correttamente, solo che non mi va di passare i parametri in chiaro tra le pagine (esempio quando voglio modificare un record passare l'ID del record)

esiste un modo che risolvere il problema, senza stravolgere la mia app?

nella mia griglia ho un jS che fa qualche cosa del tipo:

     else if (com=='Inserisci')
        {
              window.location.href= 'save';
        }
      else if (com=='Modifica')
        {
                if ($('.trSelected',grid).length == 0)  { alert ('Selezionare un elemento da modificare');  return false;}

            var items = $('.trSelected',grid);
            var Id = items[0].id.substr(3);
            window.location.href= 'save?id=' + Id;
        }

mentre nel model ho:

public function save($idUser, $firstName, $lastName, . $ownerId) 
    {
       //Verifico se è INSERT o UPDATE e genero l'array corretto
       
       if (null === $idUser)  //INSERT
       {
           $data = array(
                'firstName'             => $firstName,
                'lastName'                => $lastName,
                'lastName'                => .
                'ownerId'                => $ownerId,
           );  
        } 
        else  //UPDATE
        {
           $data = array(
                'firstName'             => $firstName,
                'lastName'                => .
           );        
        }       
        
        $password = $this->encrypt($password);  
        
         if (null === ($id = $idUser)) {
            unset($data['id']);
            $this->insert($data);
        } else {
            $this->update($data, 'userId = '. (int)$id); 
        }                
    }   

Esiste una soluzione?

Grazie

inviato 6 anni fa
il_dandi
X 0 X

Non ho ben capito...vuoi che le comunicazioni fra server e client siano criptate?

Perchè non usare https?

risposto 6 anni fa
Mario Santagiuliana
X 0 X

Se temi che l'id del record possa essere modificato dall'utente allora puoi usare hash_hmac per generare l'hash dell'id ed aggiungerlo ai parametri.

In questo modo, ricalcolando l'hash dell'id ricevuto dal Controller e confrontandolo con quello presente tra i parametri, potrai verificare che l'id non è stato modificato.

 :bye:

risposto 6 anni fa
Gianni Tomasicchio
X 0 X

Se temi che l'id del record possa essere modificato dall'utente allora puoi usare hash_hmac per generare l'hash dell'id ed aggiungerlo ai parametri.

In questo modo, ricalcolando l'hash dell'id ricevuto dal Controller e confrontandolo con quello presente tra i parametri, potrai verificare che l'id non è stato modificato.

 :bye:

Esatto, è proprio quello che avevo in mente.... "criptare" l'ID per evitare che possa essere cambiato per accedere ad altri record

A livello pratico, considerando che io ho porzioni di JS che fanno:

   var items = $('.trSelected',grid);

            var Id = items[0].id.substr(3);

            window.location.href= 'save?id=' + Id;

        }

e vari model che utilizzano l'ID passato alla funzione

come posso applicare la funzione di hash?

Grazie

risposto 6 anni fa
il_dandi
X 0 X

Non capisco proprio come risolvere il problema :(

risposto 6 anni fa
il_dandi
X 0 X

hash_hmac è una funzione del php:

http://php.net/manual/en/function.hash-hmac.php

Puoi usare questa, senza dover sfruttare il javascript  O0

Ciao

risposto 6 anni fa
Mario Santagiuliana
X 0 X

Senza usare il JS

ma se io ho

   var items = $('.trSelected',grid);

            var Id = items[0].id.substr(3);

            window.location.href= 'save?id=' + Id;

        }

questo Id (per ora in chiaro) dove lo trasformo tramite hash se non direttamente nel passaggio del parametro tramite JS?

Thanks

risposto 6 anni fa
il_dandi
X 0 X

Lo trasformi prima di inviarlo...in poche parole usi l'hash come se fosse l'id ora e fai i dovuti controlli.  ;)

risposto 6 anni fa
Mario Santagiuliana
X 0 X
Effettua l'accesso o registrati per rispondere a questa domanda