È considerata una cattiva prassi dare ai nomi dei moduli HTML lo stesso nome dei nomi dei campi della tabella? Sto costruendo alcune query sql inseritive dinamiche, e attualmente sto usando alcune espressioni regolari per cambiare i nomi dei campi del database rilevanti sulla base che ritengo possa essere insicuro altrimenti, quali sono le tue opinioni?Stesso nome per campi modulo e campi tabella database?
risposta
Ho scritto una funzione per fare query INSERT
per me e dipende da questo fatto. Prende i nomi delle variabili $_POST
e INSERT
s nelle colonne corrispondenti.
Come detto nel commento alla OP, non importa, e nella maggior parte dei casi, consente di risparmiare tempo di tornare a ricordare se si è utilizzato first_name,
firstname,
o first.
Inoltre, tenete a mente che gli utenti non vedrà mai i nomi delle colonne del database e vedranno solo i nomi dei moduli se visualizzano l'origine. Pertanto, non c'è molto di cui preoccuparsi!
Buona fortuna!
Penso che questo possa aiutare a ridurre la codifica che è necessario fare. Anche se sembra una vulnerabilità, la cosa più importante è controllare i valori provenienti dagli utenti per i dati dannosi. Non penso che potrebbe essere dannoso poiché sapere quali campi DB stai usando non dà molto agli hacker. Hanno ancora bisogno di hackerare nel server DB per accedere ai tuoi dati.
Per elaborare questo, tutti sanno che una tabella avrà un campo 'id', e uno che memorizza gli utenti avrà una' password, '' salt, 'e' name'. Quindi non preoccuparti – David
I nomi dovrebbero essere abbastanza leggibili da poter essere letti, e tuttavia "imprevedibili" (con una mancanza di un termine migliore) abbastanza per un utente malintenzionato che non è in grado di indovinare le parti private.
I nomi dei moduli non contano molto, ma un buon nome per un campo password sarebbe the_users_password
o passphrase_for_account
.
Perché 'the_users_password' dovrebbe essere più sicuro di' password'? – David
@David: Perché un utente malintenzionato avrà più difficoltà a indovinarlo. È poca sicurezza, come se fosse arrivato così lontano, sarà in grado di ottenere lo schema del tavolo, ma comunque ... –
Beh, si spera che non stia memorizzando le password in chiaro nella colonna della password! Capisco quello che stai dicendo, però. – David
- 1. Progettazione database - campi vuoti
- 2. MS Word Office Automation - Campi di testo modulo di riempimento e campi modulo di controllo Campi e unione postale
- 3. jQuery Convalida più campi con lo stesso nome
- 4. django - campi modulo dinamici
- 5. Come creare un Rails form_for con campi modulo dinamici da una tabella di database?
- 6. jQuery - Disabilita campi modulo
- 7. jQuery: form serial, campi nascosti e campi non visualizzati
- 8. Validazione modulo e campi aggiunti con $ compile
- 9. Convenzione di denominazione dei campi della tabella e istruzioni SQL
- 10. Dimensioni predefinite per i campi del database
- 11. Symfony 2 campi aggiuntivi modulo
- 12. Componente Modulo Symfony2 - creazione di campi senza il nome del modulo nell'attributo nome
- 13. Raggruppamento dei campi modulo Django
- 14. Campi rails_per modulo non visualizzato, modulo nidificato
- 15. Utilizzando lo stesso modulo di Symfony 2 per modificare e cancellare (differenze nei campi)
- 16. Struttura del database con campi dinamici
- 17. Selezionare campi specifici dal database
- 18. Rimuovi/Annulla campi modulo in Symfony2
- 19. Log4Net e campi aggiuntivi
- 20. campi di modulo dinamici nel flask.request.form
- 21. Genera automaticamente campi modulo per un modulo in django
- 22. Aggiungere dinamicamente campi al modulo rasoio
- 23. Campi AutoIncrement su database senza campo autoincrement
- 24. Database - (righe o record, colonne o campi)?
- 25. Selezione di tutti i campi della tabella A ma selezionare i campi della tabella B
- 26. modulo schema angolare: aggiungi html personalizzato per compilare i campi
- 27. Iterazione dei campi modulo inviati in Flask?
- 28. Convalida modulo MVC su più campi
- 29. Campi modulo di gruppo in Symfony2
- 30. Symfony 2 - riorganizza i campi modulo
bit difficile da aggirare con "nome" in una tabella e un modulo. I nomi sono irrilevanti, a patto che non stiate trasferendo i nomi dei campi attraverso il modulo, aprendovi a tutti i tipi di attacchi SQL injection. –