Beim stöbern im Netz gefunden...
PHP Security
Anbei mal weiter je surft, und versuche hier mal selbst eine grobe Auflistung zu tätigen wie und auf was zu achten ist...
Würde mich auf Unterstützungen, Ergänzungen und Anregungen freuen...
Hier ein kleine Auflistung auf welche PUnkte man bei der Programmierung mit PHP und SQL achten sollte:
1.
Erros mitloggen um eventuellen ungereimtheiten früher zu erkennen und aufzuspüren
Register global auf off setzen
1a.
Beim Apache Server dei EInstellung durchführen
php_admin_value error_reporting "E_ALL | E_STRICT"
1b.
Oder in jede php Datei
ini_set('error_reporting', E_ALL | E_STRICT);
// Wobei ich 1b. noch nicht genutzt habe bzw. kannte !?
2.
alle Eingaben welche vom Benutzer sind prüfen und nie vertrauen
hierzu sollte get_magic_quotes_gpc() geprüft werden ob dieses auf off steht, da die Eingabe sonst mit addshlashes() maskiert werden sollte um hier SQL injection vorzubeigen.
2a.
//Daten die an die DB weitergeleitet werden sollten vorher escaped werden
mysql_real_escape_string();
// Sonderzeichen escapen
addslashes(); als Notlösung
2b.
Eingaben von zahlenfelder prüfen auf (is_int)
einfach vermeiden das keine BUchstaben gehändelt werden und somit Fehler provoziert werden. Ausgabe einfach durchführen z.B. "Eingabe überprüfen"
3.
Ausgaben, welche vom Benutzer gegeben werden z.b. eine eingabe im Gästebuch
vorher überprüfen ob HTML Tags // <alert></alert><script></script> etc. // vorhanden sind und diese mittels htmlentities(); in reines textformat wandeln und ausgeben
4.
Variabeln sollte in Arrays gehalten wedern und weiter übergeben werden um so das einschleusen zusätzlicher Variabeln zu vermeiden
5.
Passwörter immer verschlüsselt in die Datenbank speichern.
Vorteil ist hier das der Angreifer, wenn er diese erhält sehr schwer nutzen kann.
Nachteil ist das beim vergessen jedesmal ein neues zugesendet werden muss und der Benutzer muss jedesmal ein neues anlegen.
Bezogen auf den oben genannten Link (6.Session) muss ich ganz ehrlich sagen das dieses ein recht schwammige Meinung ist, jedoch wie sollte man denn sonst Sessions und Cookies nutzen, bzw. eine eindeutige identifizerung des angemeldeten Benutzers durchführen ohne Angst haben zu müssen das Daten ausgespäht werden.
Vielleicht in zusammanhang mit der IP und das ganze in die DB schreiben!?
PHP Security
Anbei mal weiter je surft, und versuche hier mal selbst eine grobe Auflistung zu tätigen wie und auf was zu achten ist...
Würde mich auf Unterstützungen, Ergänzungen und Anregungen freuen...
Hier ein kleine Auflistung auf welche PUnkte man bei der Programmierung mit PHP und SQL achten sollte:
1.
Erros mitloggen um eventuellen ungereimtheiten früher zu erkennen und aufzuspüren
Register global auf off setzen
1a.
Beim Apache Server dei EInstellung durchführen
php_admin_value error_reporting "E_ALL | E_STRICT"
1b.
Oder in jede php Datei
ini_set('error_reporting', E_ALL | E_STRICT);
// Wobei ich 1b. noch nicht genutzt habe bzw. kannte !?
2.
alle Eingaben welche vom Benutzer sind prüfen und nie vertrauen
hierzu sollte get_magic_quotes_gpc() geprüft werden ob dieses auf off steht, da die Eingabe sonst mit addshlashes() maskiert werden sollte um hier SQL injection vorzubeigen.
2a.
//Daten die an die DB weitergeleitet werden sollten vorher escaped werden
mysql_real_escape_string();
// Sonderzeichen escapen
addslashes(); als Notlösung
2b.
Eingaben von zahlenfelder prüfen auf (is_int)
einfach vermeiden das keine BUchstaben gehändelt werden und somit Fehler provoziert werden. Ausgabe einfach durchführen z.B. "Eingabe überprüfen"
3.
Ausgaben, welche vom Benutzer gegeben werden z.b. eine eingabe im Gästebuch
vorher überprüfen ob HTML Tags // <alert></alert><script></script> etc. // vorhanden sind und diese mittels htmlentities(); in reines textformat wandeln und ausgeben
4.
Variabeln sollte in Arrays gehalten wedern und weiter übergeben werden um so das einschleusen zusätzlicher Variabeln zu vermeiden
5.
Passwörter immer verschlüsselt in die Datenbank speichern.
Vorteil ist hier das der Angreifer, wenn er diese erhält sehr schwer nutzen kann.
Nachteil ist das beim vergessen jedesmal ein neues zugesendet werden muss und der Benutzer muss jedesmal ein neues anlegen.
Bezogen auf den oben genannten Link (6.Session) muss ich ganz ehrlich sagen das dieses ein recht schwammige Meinung ist, jedoch wie sollte man denn sonst Sessions und Cookies nutzen, bzw. eine eindeutige identifizerung des angemeldeten Benutzers durchführen ohne Angst haben zu müssen das Daten ausgespäht werden.
Vielleicht in zusammanhang mit der IP und das ganze in die DB schreiben!?