Considera un protocollo che consente ai client di recuperare "moduli" XML da un server. I moduli sono identificati da un ID di modulo univoco generato in modo casuale che è incorporato nel modulo. I client compilano il modulo e lo inviano al server, la comunicazione utilizza richieste SOAP relativamente semplici che contengono il modulo nell'elemento SOAP body.
Ho il compito di implementare il lato server in questo scenario. Il mio problema è con i client dannosi che potrebbero manomettere l'ID del modulo incorporato (modificarlo con un valore arbitrario) e inviare tale modulo al server. Sul lato server, un modulo con l'ID modulo modificato potrebbe già esistere e verrebbe sovrascritto dall'invio, con conseguente perdita di dati.
La mia soluzione proposta sarebbe incorporare un hash PBKDF2 dell'ID modulo accanto all'ID modulo di testo normale. Se il client altera l'ID semplice o l'hash, il server rifiuta l'invio. È un modo ragionevolmente sicuro per garantire l'integrità della forma? È un problema divulgare l'hash al client in questo scenario (stiamo parlando dell'integrità dei dati qui, non della riservatezza)? Ci sono potenziali problemi con la mia soluzione (ad esempio, utilizzare un metodo di derivazione della chiave migliore)?
Qualsiasi aiuto è apprezzato!