Stück PHP-Code für das Verhindern von Hackern

7

Ich habe eine PHP-Datei auf meiner Website, und ich verbinde mich mit db, einige Datensätze und listet sie in der gleichen Datei.

%Vor%

Also, muss ich irgendetwas für die Sicherheit tun? Wie SQL-Injektion oder irgendetwas anderes. Es gibt nichts, was zur URL geht. Es ist nur www.blabla.com/gallery.php .

    
designer-trying-coding 16.04.2010, 08:32
quelle

6 Antworten

10

Dieses Snippet ist absolut sicher, da keine Variablen in die Abfragezeichenfolge eingefügt werden.

Um sicher zu arbeiten, falls Sie eines Tages mit Variablen fertig werden müssen - direkt vom Benutzer oder von einer anderen Datenquelle - möchten Sie vielleicht zu einer mySQL-Bibliothek wechseln, die parametrisierte Abfragen wie PDO . Diese eliminieren die Gefahr von Injektionen vollständig, da sie automatisch dafür sorgen, dass die eingehenden Daten automatisch entweichen.

Wenn Sie bei den mysql_* -Funktionen bleiben, stellen Sie sicher, dass Sie alle eingehenden Daten mit mysql_real_escape_string () umgehen. und stellen Sie sicher, dass sie in ein Paar einfacher Anführungszeichen eingefügt werden.

    
Pekka 웃 16.04.2010, 08:34
quelle
4

Solange Ihre Abfragen keine Parameter verwenden, ist SQL Injection kein Risiko. SQL Injection kann nur stattfinden, wenn die Benutzer (oder andere Quellen) alles beeinflussen können, was in SQL an die Datenbank gesendet wird, z. B. Suchbegriffe

    
Jasper 16.04.2010 08:34
quelle
2

Hier gibt es keine Sicherheitsprobleme. SQL-Injektion kann passieren, wo Sie Eingaben vom Benutzer erhalten und in Ihren Abfragen verwenden.

    
pars 16.04.2010 08:35
quelle
2

Wenn die Galerietabelle einige Benutzereingaben enthält, können einige XSS-Angriffe durchgeführt werden. Um dies zu verhindern, müssen alle nicht vertrauenswürdigen Benutzereingaben mit der Funktion htmlspecialchars() vor dem Drucken im Browser vorbereitet werden.

    
Your Common Sense 16.04.2010 08:41
quelle
1

Dieses Snippet ist sicher, da von den Benutzern keine Eingabe in die Abfragen eingegeben wird.

Wenn Sie userInput haben, indem Sie beispielsweise die Kategorie erhalten, die von der URL oder vom POST angezeigt werden soll, sollten Sie vorbereitete Anweisungen verwenden. Dies ist möglicherweise auch bei Benutzereingaben sicher. Dies ist viel sicherer als das reine Entkommen, weil die SQL analysiert wird und dann die Parameter eingefügt werden. Dies ist besser für die Leistung und die Benutzereingabe kann die Struktur der SQL-Abfrage nicht ändern.

    
Patrick Cornelissen 16.04.2010 08:40
quelle
0

Wenn Sie davon ausgehen, dass der Verbindungscode im PHP-Script für den Webzugriff verfügbar ist, sollten Sie nur Folgendes berücksichtigen:

  1. verschiebe die MySQL-Verbindung aus dem Skript und in eine Datei außerhalb von das Dokumentenstammverzeichnis der Site

  2. oder verwenden Sie extern bezogene Variablen (d. h. aus einer anderen Datei außerhalb des Dokumentenstamms) für die Benutzername und Passwort anstelle von hartcodierte Details im Skript

Wenn also der Server den Code anzeigt, anstatt den PHP zu rendern, bleiben die Details vor der Ansicht geschützt.

    
Cez 16.04.2010 09:15
quelle

Tags und Links