Cheatah: Sicherheit: MySql-Injection und Zugriff "von aussen"

Beitrag lesen

Hi,

Zunächst mal mysql-injection. Was das ist weiss ich inzwischen, auch wie ein potenzieller Hacker vorgehen könnte (siehe Wikipedia). Um dies zu verhindern, habe ich in meinen scripten umfangreiche Abfragen gestaltet.

komisch, um diesem Problem Herr zu werden, mache ich gewöhnlich gar keine Abfragen, sondern kodiere die Werte dem Kontext entsprechend. Okay, manchmal prüfe ich auf einen korrekten Datentyp.

So z.B. bei Passwörtern, dass diese nur aus Buchstaben und Zahlen bestehen dürfen,

Aua, bitte nicht. Passwörter werden ohnehin *nie* im Klartext gespeichert, sondern beispielsweise mittels PASSWORD() verschlüsselt; und gerade Sonderzeichen zu verbieten ist das Übelste, was man bei Passwörtern machen kann.

Muss ich darüber hinaus noch etwas beachten?

Kodiere einfach die Werte. Fertig.

Eine andere Sache ist immernoch die, wenn jemand einen Link über die Favoriten auf eine Seite setzt, die er ohne Login nicht erreichen darf, und irgendwann später dahin über seine Favoriten zurückkehren will. Ich kann sicher zu Beginn eines jeden scriptes Abfragen, ob z.B. $_SESSION['passwort'] gesetzt ist. Wenn nicht, eben umleiten.

Warum umleiten, wenn Du einfach den Login-Prozess starten und wieder an der Stelle landen kannst, wo der Nutzer hin wollte?

Nun habe ich etwas mehr über .htaccess gelesen, kann mir aber nicht so recht etwas darunter vorstellen.

.htaccess ist eine Datei, über die der Apache-Server verzeichnislokal konfiguriert werden kann. Auch wenn ein winziges, winziges Set der möglichen Konfigurationsdirektiven mit Authentifizierungen zu tun hat, will ich nicht verstehen, warum diese Konfigurationsdatei so häufig mit Login-Vorgängen verknüpft wird.

Es soll sich dabei um eine Datei handeln. Muss man die selber einrichten?

Ja, das nennt sich allerdings "abspeichern".

Und wo befindet sie sich, bzw. wohin platziert man sie?

In das Verzeichnis, für das sie gelten soll.

Auf meinem Webspace finde ich nichts dergleichen.

Es ist möglich, dass der Server so konfiguriert ist, sie nicht zu beachten. Oder er kein Apache ist.

Wie wird sie angesteuert?

Automatisch vom Server.

Nochmal zur Klarheit:
"document-root" bedeutet, das Verzeichnis, in dem sich die index.html befindet und welches "von aussen" erreicht werden kann?

Im Prinzip richtig, nur dass keine index.html erforderlich sein muss.

Wenn dem so ist und sich die Dateien, die nur über ein vorheriges Login erreicht werden können, in einem anderen Verzeichnis ausserhalb des document-root befinden, dann können diese Dateien doch trotzdem über einen Favoritenlink erreicht werden, oder?

DocumentRoot bezeichnet das Verzeichnis, innerhalb dessen sich direkt per HTTP erreichbare Dateien befinden. Aus dem Dateipfad wird ein URL-Pfad, aus den Dateien werden Ressourcen. Befinden sich Dateien außerhalb dieses Verzeichnisses, sind sie nicht über diesen simplen Standard-Mechanismus verfügbar, was jedoch nichts darüber aussagt, ob und wie sie verfügbar sind. Bookmarks und Favoriten haben damit nichts zu tun.

Welchen Nutzen hätte dann htaccess?

Man kann darüber Konfigurationsdirektiven angeben, die für den Verzeichnisbaum gelten, in dem sie liegen. Also beispielsweise Dateien mit der Endung .exe per URLs mit der Endung .html erreichbar zu machen und als PHP ausführen zu lassen, welches eine Ressource des Typs image/gif erzeugt.

Dasselbe, wenn jemand die Zieladresse direkt im Browser eintippt.

Ja, das selbe, in der Tat. Zwischen einer solchen Eingabe und der Verwendung eines Bookmarks oder Favoriten gibt es keinerlei Unterschied.

Der Pfad wird ja beim Besuch im unteren Browserrand angezeigt und kann sich gemerkt werden.

Ja.

Cheatah

--
X-Self-Code: sh:( fo:} ch:~ rl:| br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
X-Will-Answer-Email: No
X-Please-Search-Archive-First: Absolutely Yes