Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Offenlegung von Tabellennamen und Feldnamen in der Anforderungs-URL

Ich habe kein Problem damit, die gleichen (oder sehr ähnlichen) Namen in der URL und der Datenbank zu verwenden – sicher, Sie könnten Implementierungsdetails "offenlegen", aber wenn Sie radikal unterschiedliche Namen in der URL und der DB wählen, werden Sie Wahrscheinlich wählst du schlechte Namen. Ich bin auch ein Fan von einheitlichen Namen – die Kommunikation mit Programmierern/Testern/Kunden wird viel schwieriger, wenn jeder alles etwas anders nennt.

Was mich stört, ist, dass Sie den Benutzer beliebige Abfragen in Ihrer Datenbank ausführen lassen. http://.../index.php?table=users&user_id=1 , sagen? Oder http://.../index.php?table=users&password=password (nicht, dass Sie Passwörter im Klartext speichern sollten)? Oder http://.../index.php?table=users&age=11 ?

Wenn der mit der DB verbundene Benutzer die gleichen Berechtigungen hat wie der Benutzer, der vor dem Webbrowser sitzt, kann es sinnvoll sein. Im Allgemeinen wird das nicht der Fall sein, also brauchen Sie eine Ebene, die weiß, was der Benutzer sehen darf und was nicht, und diese Ebene ist viel einfacher durch Whitelisting korrekt zu schreiben.

(Wenn Sie genügend Logik in gespeicherte Prozeduren gesteckt haben, könnte es funktionieren, aber dann werden Ihre gespeicherten Prozeduren Spaltennamen fest codieren ...)