2016-09-02 6 views
1

einen Web-Service Betrachten wir die von Urls wie diese angefordert wird:.. (Punkt Punkt) in URLs

samplehost.com/here/comes/a/path 

Die App dahinter den Pfad (hinter .com) nehmen und für eine Datei, diesen Weg mit aussehen relativ zu einem definierten lokalen Verzeichnis.

So lassen Sie uns das öffentliche Verzeichnis sagen /home/user/files ist, die oben genannte URL die Datei /home/user/files/here/comes/a/path

Wenn dieses Schreiben, stieß in der Frage dienen würde, was passieren würde, wenn jemand Urls wie beantragt:

samplehost.com/../secret 

Weder curl noch ein Browser konnte diese URL senden. Oder in beiden Fällen hat die Webanwendung einen Pfad erhalten, wo die Punkte entfernt wurden: secret

Wo ist dieser Mechanismus implementiert? Gibt es noch etwas, das ich hier sicherstellen muss, um nicht in ein solches Sicherheitsproblem zu geraten?

+2

Nur für den Fall, dass Sie nicht wussten, was Sie fragen, heißt ein [Pfad Traversal Attack] (https://www.owasp.org/index.php/Path_Traversal). – Marty

Antwort

1

Die App, die die Daten lädt, muss sicherstellen, dass nur Daten aus dem öffentlichen Verzeichnis geladen werden. Die Sicherheit kann zusätzlich durch die Verwendung von Dateisystemberechtigungen verbessert werden.

Sie sollten sich nicht auf clientseitige Prüfungen verlassen, da sie vom verwendeten Client abhängen. Ein Hacker kann alles in eine HTTP-Anfrage schreiben.

+0

Das klingt vernünftig. Ich sehe jetzt, das ist viel besser als auf einer String-Ebene zu überprüfen. Ich war mir nicht ganz sicher, ob die Punktpunktentfernung von den Clients durchgeführt wird. Es sieht aus wie. –