Kann mir bitte mal jemand erklären warum es seitens der PHP-Entwickler, die immer wieder neue Versionen rausbringen, nicht möglich ist eine PHP-Version zu entwickeln bei der man keine extra "Befehle" (so ennne ich dies mal) angeben muss damit z.B. eine Datenbank-Afrage nicht per SQL-Injection "infiziert" werden kann?
Mir ist bewusst, dass das Problem wohl nicht allein an PHP liegt, sondern auch an der eingesetzten Datenbank.
Da man aber die Daten meist mittels PHP abfragt, müsste sich hier auch PHP den Schuh anziehen.
Auch klar, es gibt .ASP etc. ... also nicht nur PHP.... egal an dieser Stelle!
Ich kenn mich da auch nicht aus, also bitte hakt nicht darauf rum.
Mir geht es - als Nicht-Programmierer - darum, dass man um eine sichere Datenbank-Abfrage realisieren zu können z.B. prepared-Statements oder "veraltete Escapes" nutzen muss. Diese muss man aber expliziet angeben!
Warum kann man sowas nicht "automatisch" (im Hintergrund) mit einer normalen Abfrage "verknüpfen" indem man quasi sagt, dass man das nicht händisch tippen muss, es also Standard ist?!
Quasi, dass jede Abfrage ohne Angabe von prepared-Statements oder "veraltete / Escapes" dennoch "sicher" sind ohne SQLi zuzulassen.
Das wäre doch für alle Seiten viel einfacher!
Möchte keine Diskussion entfachen... sondern eben nur wissen warum das nicht möglich ist.
Mir ist bewusst, dass das Problem wohl nicht allein an PHP liegt, sondern auch an der eingesetzten Datenbank.
Da man aber die Daten meist mittels PHP abfragt, müsste sich hier auch PHP den Schuh anziehen.
Auch klar, es gibt .ASP etc. ... also nicht nur PHP.... egal an dieser Stelle!
Ich kenn mich da auch nicht aus, also bitte hakt nicht darauf rum.
Mir geht es - als Nicht-Programmierer - darum, dass man um eine sichere Datenbank-Abfrage realisieren zu können z.B. prepared-Statements oder "veraltete Escapes" nutzen muss. Diese muss man aber expliziet angeben!
PHP:
mysql_real_escape_string
mysqli::real_escape_string
mysqli::escape_string
mysqli_real_escape_string
$mysqli->prepare
PDO::prepare
Quasi, dass jede Abfrage ohne Angabe von prepared-Statements oder "veraltete / Escapes" dennoch "sicher" sind ohne SQLi zuzulassen.
Das wäre doch für alle Seiten viel einfacher!
Möchte keine Diskussion entfachen... sondern eben nur wissen warum das nicht möglich ist.