SQL-Injection-Sicherheit
#1
geschrieben 09. Juli 2012 - 14:50
Bei sämtlichen Sicherheitstipps hab ich aber neben der PDO und Prepared Statement Geschichte bislang nur immer allerhand Möglichkeiten zur Kontrolle der übergebenen Variablen gefunden. Das wäre doch aber total einfach mit dem beschränkten Zugang, wenn es denn ginge.
Anzeige
#2
geschrieben 09. Juli 2012 - 20:59
#3
geschrieben 09. Juli 2012 - 21:27
#4
geschrieben 10. Juli 2012 - 08:32
#5
geschrieben 10. Juli 2012 - 09:07
Wenn man also zu leichtsinnig programmiert, bietet das natürlich keinen wirklichen Schutz aber als zusätzliche Barriere würde es doch Sinn machen, die grundsätzlichen Datenbankberechtigung dort wo es möglich ist einzuschränken.
Dieser Beitrag wurde von Holger_N bearbeitet: 10. Juli 2012 - 09:09
#6 _nobido_
geschrieben 10. Juli 2012 - 09:38
Zitat (Holger_N: 10. Juli 2012 - 09:07)
Auf DB(MS) bzw. Tabellenebene? So per Rolle? (Evtl. kennt das ja jemand von Dynamics AX (2012), da gibt es ein doch recht fein unterteiltes Rollensystem mit dem geregelt wird wer worauf Zugriff hat.)
Was ist mit Parametern? So direkt in die Programmierung integriert? Wird doch gern als ein (All)Heilmittel gegen injections angeführt.
#7
geschrieben 10. Juli 2012 - 09:42
Zitat (Holger_N: 10. Juli 2012 - 09:07)
Mit Exportieren meine ich eine normales SQL-Statement was mir einfach alle Daten einer Tabelle liefert.
Ansonsten gebe ich dir recht, wenn du in dieser Tabelle - nachdem die Daten alle enthalten sind - ausschließlich lesen zugreifst, ist es sicherlich nicht verkehrt sie auf "read-only" zu setzen. Das würde ich dann direkt über SQL lösen, also in etwa so:
GRANT SELECT ON db.table TO user;.
Möglicherweise - da bin ich mir jetzt nicht wirklich sicher - musst du aber auch den umgekehrten Weg gehen und die entsprechenden Rechte entziehen, also:
REVOKE INSERT,UPDATE,DELETE,DROP ON db.table FROM user;.
#8
geschrieben 10. Juli 2012 - 11:21
Zitat (Witi: 10. Juli 2012 - 09:42)
Ansonsten gebe ich dir recht, wenn du in dieser Tabelle - nachdem die Daten alle enthalten sind - ausschließlich lesen zugreifst, ist es sicherlich nicht verkehrt sie auf "read-only" zu setzen. Das würde ich dann direkt über SQL lösen, also in etwa so:
GRANT SELECT ON db.table TO user;.
Möglicherweise - da bin ich mir jetzt nicht wirklich sicher - musst du aber auch den umgekehrten Weg gehen und die entsprechenden Rechte entziehen, also:
REVOKE INSERT,UPDATE,DELETE,DROP ON db.table FROM user;.
Na meine Idee eigentlich die, dass man direkt für die Datenbank schon verschiedene Benutzer anlegt und wenn per PHP die Datenbankverbindung hergestellt wird, entsprechend der Rechte von vornherein nur ein Datenbankaccount verwendet wird, der nur Leserechte hat.
#9
geschrieben 10. Juli 2012 - 12:51
- ← IIS7 mit PHP übergibt keine Variablen
- Skript/Web-Programmierung
- Warum geht der Code überall nur nicht im Internet Explorer? →

Hilfe
Neues Thema
Antworten

Nach oben


