zurück zur Startseite
  


Zurück XHTMLforum > Webentwicklung (außer XHTML und CSS) > Serveradministration und serverseitige Scripte
Seite neu laden $var = $_POST['stuff'] ist immer leer, var_dump[$_POST] nicht

Antwort
 
LinkBack Themen-Optionen Ansicht
  #11 (permalink)  
Alt 28.08.2013, 12:13
Benutzerbild von lottikarotti
Ein ♥ für's Web
XHTMLforum-Mitglied
 
Registriert seit: 18.04.2012
Ort: Karlsruhe
Beiträge: 396
lottikarotti wird schon bald berühmt werden
Standard

Morgen,

Zitat:
Zitat von explanator Beitrag anzeigen
Um SQL-Injections zu verhindern sollte der Contextwechsel beachtet werden und mysql_real_escape_string() angewendet werden.
Dies ist nicht weiter nötig, wenn man mit Prepared Statements arbeitet.
Zitat:
(...) and helps to prevent SQL injection attacks by eliminating the need to manually quote the parameters.
Zitat:
Zitat von explanator Beitrag anzeigen
Das Umkopieren der übergebenen Variablen wird zwar oft gesehen, ist aber eigentlich nicht notwendig. Eine Variable bleibt eine Variable auch wenn sie durch umkopieren anders benannt wird.
Es geht mir weniger um das "Umkopieren" an sich, als um die Tatsache, dass es Konzepte und klare Strukturen braucht, wenn man qualitativ hochwertige Software entwickeln möchte. Wie diese Konzepte aussehen, spielt dabei keine große Rolle. Bei mir lautet das Konzept: externe Daten niemals direkt in den Verarbeitungsprozess einzubeziehen.

Zitat:
Zitat von explanator Beitrag anzeigen
Es bleibt dem Programmierer überlassen ob er das macht oder nicht, es ging hier lediglich um die Notwendigkeit und die ist nicht gegeben.
Aus meiner Sicht ist aber eine Sache klar: Entwickler die keinen klaren Strukturen folgen, machen früher oder später fatale Fehler. Im schlimmsten Fall treten diese erst beim Kunden auf.

Zitat:
Zitat von explanator Beitrag anzeigen
Das man SQL-Abfragen, auch wenn sie kurz sind, nicht in einer Zeile stehen lässt hat nichts mit der Übersichtlichkeit zu tun, sondern vielmehr damit, dass bei einem Fehler einem dann die Zeile angezeigt wird in der der Fehler auftrat.
Je weniger man splittet, desto mehr muss man selber suchen.
Grundsätzlich stimme ich dir hier natürlich zu, auch wenn sich das bei der betroffenen Zeile weitestgehend ignorieren lässt, da dort nur eine Zeichenkette zugewiesen wird:
PHP-Code:
$sql 'SELECT username, password FROM users WHERE username = ? LIMIT 1' 
Zitat:
Zitat von explanator Beitrag anzeigen
Prepared Statesment sind nicht der Weisheit letzter Schluss, sie können um einiges langsamer sein
Die Performance ist natürlich ein anderes Thema. Hier muss man von Fall zu Fall abwägen und sich für die effizienteste Lösung entscheiden.

Zitat:
Zitat von explanator Beitrag anzeigen
und vermeiden SQL-Injections nicht.
Doch, genau das tun sie und das liegt bereits in der Fuktionsweise von Prepared Statements begründet. Dies ist nicht zu Verwechseln mit dem plumpen zusammenbasteln eines SQL-Statements mittels Vereinigungs-Operator.

Zitat:
Zitat von explanator Beitrag anzeigen
In diesem gezeigten Fall, Abfrage der Useremail in Verbindung mit Passwort sind sie sogar kontraproduktiv, das sie das Caching des Abfragestrings auf Datenbankseite verhindern.
Da die Anmeldung an einem System kein massiv genutzter Prozess ist, sollte das in diesem Fall keine große Rolle spielen. Wenn dieser Teil der Anwendung allerdings als performance-kritisch betrachtet wird, sollte man natürlich nach der effizientesten Lösung suchen.

Viele Grüße,
lotti
__________________
Empfehlenswerte Links:
jsFiddle | JavaScript Patterns | RedBeanPHP | Mozilla Developer Network -/- W3C Validator | JSLint
Mit Zitat antworten
Sponsored Links
Antwort

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Nach 'Zurück'-Ereignis ist Formular leer Kaimane (X)HTML 1 18.01.2008 08:29


Alle Zeitangaben in WEZ +2. Es ist jetzt 17:42 Uhr.