Ciao,
nel mio CMS ho una feature che permette di verificare che le variabili inviate via GET o POST siano quelle abilitate.
Questo è derivato inizialmente da necessità SEO per evitare duplicazioni di URL derivanti dall'append di parametri a caso definiti dagli utenti nella query string, ma ne beneficia anche la sicurezza, ovvero lo script non sarà esposto ad altre variabili definite nella richiesta HTTP che non siano quelle stabilite dall'applicazione.
(Se pensate ci sia qualche falla in queste considerazioni dite pure).
Quello che su cui sto ragionando è quale sia il comportamento più corretto dell'applicazione in seguito all'inserimento di parametri non ammessi: al momento faccio un 404, ma mi chiedevo se non fosse una scelta troppo brutale.
Fare un 301 verso l'URL con i soli parametri ammessi è sensato nel caso di un GET, ma con POST si avrebbe un fastidioso alert da parte del browser che informa l'utente che i dati postati stanno in realtà per essere inviati ad una pagina slave diversa da quella inizialmente dichiarata come action del form, per cui minerei comunque la tranquillità e fiducia dell'utente nel servizio.
Avete suggerimenti per un comportamento dell'applicazione che non lasci l'utente eccessivamente contrariato? Oppure esperienze di comportamenti in situazioni simili da parte di altri CMS open source?