Come inviare dati tra richieste HTTP senza che l'utente lo modifichi?

1

Attualmente sto sviluppando un'applicazione web (usando laravel) dove ho un modulo che modifica una risorsa. Qualcosa del genere:

<!-- URL: /editResource/3 -->
<form action="/editResource/3" method="POST">
     <!-- Input fields -->
</form>

Quando invio il modulo, l'applicazione web aggiornerà la risorsa 3.

Ma come posso evitare qualcosa come usare gli strumenti di sviluppo per modificare / editResource / 3 to / editResource / 4 e modificare la risorsa sbagliata?

Non sto chiedendo come impedire ad alcuni utenti di modificare altre risorse utente; questo può essere ottenuto con una semplice convalida, ma sto chiedendo come impedire all'utente di modificare questo tipo di dati, dal momento che HTTP è senza stato.

Grazie

EDIT: La domanda era fuorviante, voglio chiarire che quello che sto cercando di trovare è un modo per mantenere alcune informazioni tra le richieste, senza che l'utente la modifichi. Sto inviando le informazioni: 3 al client, quindi nella richiesta successiva il server sa che l'utente sta modificando la risorsa 3, ma voglio farlo senza il rischio generato dall'utente che modifica questi dati.

    
posta IAmJulianAcosta 18.11.2014 - 02:58
fonte

2 risposte

1

Conserverei il lato del server di dati in un oggetto di sessione o nel record del profilo utente e quindi invierò i dati non modificati ogni volta.

    
risposta data 18.11.2014 - 16:35
fonte
6

Non puoi. Se i dati sono sul lato dell'utente, l'utente ne ha il controllo, non tu. Cercare di cambiare questa è una corsa agli armamenti in cui non vuoi entrare.

Invece, preoccupati di cosa hai il controllo di: il server. Convalidare i dati anziché fidarsi ciecamente. HTTP potrebbe essere stateless, ma la tua app sul lato server non deve essere!

    
risposta data 18.11.2014 - 03:06
fonte

Leggi altre domande sui tag