La visualizzazione della chiave è totalmente facoltativa, ma non è un problema di sicurezza, anche se lo si fa. È necessario verificare se l'utente ha accesso, sempre. Questo è il tuo lavoro, non quello del framework.
Ma non devi usare un ID numerico. Mi piace fare qualcosa come il tipo di contenuto e il titolo nell'URL:
/news/title-of-article
/reservations/description-of-hotel-and-reservation
/properties/address-of-property
etc.
Quindi uso queste informazioni per trovare il contenuto. Non per ragioni di sicurezza, il titolo è solo superficialmente più privato di un ID, ma per usabilità e / o SEO.
Mi piace anche consentire all'utente di eliminare lo slug (titolo, qualunque cosa tu voglia chiamarlo) nell'URL e ricevere esattamente ciò che si aspetta. Ancora una volta, solo l'usabilità, non la sicurezza:
/properties/address-of-property (single property)
/properties (list of properties)
Le app MVC hanno spesso una convenzione di default di controller / funzione / id. Questo è solo un valore predefinito. Non c'è motivo di usarlo se l'URL è importante per te. I tutorial di solito insegnano le impostazioni predefinite, ma dopo il tutorial è possibile (e dovrebbe!) Saperne di più. Quindi modifica le cose in base alle tue esigenze.
In ogni framework in cui ho lavorato, c'è stato un modo per mappare gli URL alle funzioni e passare i parametri (qualunque sia la parte dell'URL che si desidera). Hanno, senza eccezioni, stato chiamato "percorsi".
Usa percorsi ben studiati se vuoi un altro URL per gli utenti / motori di ricerca. Oppure usa il defualt se non hai bisogno di url migliori, ma vuoi semplicemente creare rapidamente l'app. Ad ogni modo, controlla se un utente ha il permesso di vedere qualcosa. Sempre.
Conoscere l'URL non deve essere uguale in grado di accedere ed è il tuo lavoro per applicarlo, indipendentemente dall'URL.