2011-01-03 4 views
1

Ich hosste eine PHP-Datei, die Informationen aus, die ich in meiner Mysql-Datenbank speichern und Ich plane, den Namen der Datei in einer Proxy-PHP-Datei (für eine Cross-Domain-Ajax-App) zu verteilen , die den Text im XML-Format greifen wird.Stoppen Sie Hacker beim Hosten von PHP-Dateien

Worauf muss ich achten, damit mein Server/meine Datenbank nicht gehackt wird? Ich habe die Indizierung deaktiviert (wenn Sie die PHP-Datei herunterladen könnten, hätten Sie meine Verbindungsinformationen).

Ich kann nicht htaccess verwenden, um irgendjemanden zu blockieren, weil möglicherweise zufällige Server darauf zugreifen werden. Was muss ich sonst noch tun/kann ich neben den Berechtigungen der Datei festlegen?

Antwort

2

Wenn Sie nur Informationen aus Ihrer Datenbank spucken und Änderungen nicht zulassen, sehe ich kein Risiko. Stellen Sie nur sicher, dass localhost die einzige Sache ist, die mit Ihrer Datenbank sprechen kann.

Auch wenn Sie Verzeichnislisten aktiviert haben, läuft PHP auf der Webserver-Ebene. Die Datei würde verarbeitet werden, wenn jemand sie herunterladen würde, daher wären Ihre Verbindungsinformationen nicht in der Datei enthalten; nur die verarbeitete Information würde. Die einzige Möglichkeit, eine PHP-Datei herunterzuladen, ohne sie zu verarbeiten, besteht darin, die Dateierweiterung in .PHPS zu ändern.

Mit anderen Worten, ich denke, Sie werden in Ihrer aktuellen Konfiguration in Ordnung sein, tun Sie einfach Ihre Standard-SQL-Injektion prüft.

+0

Ahh duh, dein Recht, es spuckte nur xml aus. Ich hatte bereits sql-injection eingerichtet, erlaubte dann aber nur localhost-Kommunikation und wählte wahrscheinlich nur Privilegien aus, an die ich nicht gedacht hatte. Danke Leute. – cbron

1

Sie müssen auf SQL- und Pfadinjektion achten.

2

Sie sollten sich der SQL Injection-Schwachstellen bewusst sein - vielleicht erlauben Sie nur den Zugriff auf die Datenbank von localhost - dies wird Ihnen bei einer ganzen Reihe von Sicherheitsproblemen helfen. (http://en.wikipedia.org/wiki/SQL_injection)

1

Ich würde sicherstellen, dass der SQL-Benutzer, den er verwendet, nur SELECT-Berechtigungen oder die erforderlichen minimalen Berechtigungen hat.