Passa id record nella URL in PHP

1

Sto facendo un'applicazione PHP con CodeIgniter e la maggior parte dei miei controller accettano ID record come parametri per il recupero degli scopi. Ho anche passato id record nelle mie azioni di moduli. In questo modo: www.sample.com/records/save/sFKu=4

È questo il modo giusto per farlo? Nota che gli ID dei record sono crittografati.

    
posta Gian Acuna 17.05.2013 - 16:27
fonte

3 risposte

1

Se ti preoccupi degli ID record che presentano un qualche tipo di rischio per la sicurezza, non utilizzare numeri interi a incremento automatico.

Posso vedere un ID record come 2837 quindi so che c'è un 2836 , 2835 e così via.

Invece, usa UUID come identificativo del record. Ciò assicurerà che ogni record ottenga un UUID diverso, e l'utilizzo della lettura di un UUID non ti fornisce alcuna informazione su quale altro UUID potrebbe esistere nel sistema.

C'è un progetto UIDID di Codeigniter che potrebbe aiutare, e alcuni informazioni su quali UUID sono .

    
risposta data 17.05.2013 - 20:11
fonte
1

Sì, va bene per la retreival. Assicurati che nel tuo codice PHP convalidi correttamente i diritti utente alla risorsa, in modo che le persone non possano modificare id che non appartengono a loro. Non vuoi che le persone cambino gli ID nell'URL per poter accedere ai record che non dovrebbero vedere.

Per i moduli o l'eliminazione dei dati, potresti invece considerare di inserire il parametro id in un campo di input nascosto piuttosto che nell'URL in modo che vengano inviati come variabili POST.

    
risposta data 17.05.2013 - 18:08
fonte
1

In questo momento la sua pratica standard per il recupero, ma penso che dovrebbe essere evitato quando possibile.

Se invece si ha un nome univoco per lo stesso bene come:
sample.com/products/galactic_telescope

ora hai dato un vero significato all'URL - per gli umani e per i motori di ricerca. e tu hai un sistema flessibile. puoi cambiare l'ID di quel prodotto, puoi aggiungere varianti e accessori, può andare esaurito - e l'URL rimane lo stesso.

Se si utilizzano i moduli, è possibile passare l'ID in un campo modulo nascosto. Ti consente anche di eseguire altri tipi di controlli, ad esempio puoi convalidare e verificare il valore di quel campo nel tuo costruttore e, se non è valido, ad esempio il modulo è stato compilato da un bot rogue - rimbalza su una pagina o una classe diversa prima di ogni altra azione.

    
risposta data 17.05.2013 - 21:04
fonte

Leggi altre domande sui tag