Supponiamo che si stiano utilizzando tecniche di crittografia / crittografia sufficienti per soddisfare PCI DSS.
No, stiamo osservando un problema astratto di qualcuno che può prevedere un valore. Il fattore di rischio è che se il valore può essere indovinato o segue uno schema noto, si può quindi cancellare a volontà.
Il problema del GUID è irrilevante, perché il vettore di attacco è ancora un attacco di forza bruta. Pur conoscendo il modello o gli algoritmi utilizzati per creare il tuo ID univoco può certamente aiutare a ridurre le possibilità di un attacco limitato da un dizionario, la conoscenza degli ID in anticipo non è necessaria per eliminare i record indiscriminatamente.
Affrontare il problema implementando controlli aggiuntivi. Innanzitutto, se si trova in un database, si dispone di registrazioni e transazioni sufficienti.
Sulla strada per eseguire la cancellazione, dovrebbero essere disponibili controlli aggiuntivi. Iniziamo dal lato utente: se il record è associato all'utente, solo l'utente dovrebbe avere la possibilità di cancellare i propri record. Se l'utente non è autenticato o non possiede i record, non consentire che la procedura di cancellazione continui in avanti. L'utente deve fornire un'autorizzazione speciale? Un'altra variabile è impostata nel database o in una sessione per consentire l'eliminazione (ad esempio, è necessario autorizzare prima che l'azione vada in porto?) Se c'è un rischio sufficiente, è possibile implementare una conferma fuori banda, come inviare un È accettabile un messaggio SMS o forse una conferma via email. In questo scenario, il suo rischio è probabilmente basso se un utente cancella deliberatamente i propri record di carte di credito perché possono inserirli di nuovo in seguito.
Se disponi di controlli di autenticazione, autorizzazione e transazione affidabili, limiterà la possibilità di eliminare indiscriminatamente i valori, anche se sono noti.
Come ulteriore precauzione, potresti voler implementare l'euristica e gli algoritmi di rilevamento degli attacchi. Ad esempio, limitare il numero di eliminazioni dallo stesso indirizzo IP al giorno. Rollback delle transazioni se ci sono troppe cancellazioni in un dato giorno considerando i normali pattern di cancellazione, ecc.
Sembra che dalla tua descrizione sia stato eseguito un semplice comando POST, vorrei assicurarmi che ciò avvenga solo se c'è TLS / SSL, l'utente è autenticato, c'è un token CSRF nella richiesta, ecc. Garantirei che tutto le cancellazioni sono registrate e possono essere ripristinate. Poiché la cancellazione non comporterebbe un'esposizione, puoi anche fare affidamento su una notifica post-azione per gli utenti: "Confermiamo di aver cancellato la tua carta di credito in archivio. Se non l'hai fatto, ti preghiamo di contattarci immediatamente" ecc. / p>