php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2008

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 30.11.2008, 22:04  
Supermoderator HD
 
Benutzerbild von Manko10
 
Registriert seit: 16.03.2008
Beiträge: 8.709
PHP-Kenntnisse:
Fortgeschritten
Manko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende Zukunft
Standard

Interessant. Dankeschön!
__________________
Refining Linux Advent Calendar series “24 Outstanding ZSH Gems
Manko10 ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 30.11.2008, 22:05  
Erfahrener Benutzer
 
Benutzerbild von David
 
Registriert seit: 05.09.2007
Beiträge: 5.044
David wird schon bald berühmt werden
Standard

Es bezieht sich auf die character-set Einstellungen. Zum Beispiel per
Zitat:
mysql_query("SET CHARACTER SET 'gbk'", $c);
David ist offline  
Alt 30.11.2008, 22:06  
Erfahrener Benutzer
 
Benutzerbild von David
 
Registriert seit: 05.09.2007
Beiträge: 5.044
David wird schon bald berühmt werden
Standard

Und was lernen wir (wieder) daraus
Zitat:
Zitat von http://ilia.ws/archives/103-mysql_real_escape_string-versus-Prepared-Statements.html
The solution is to use prepared statements, which are supported by nearly all PHP database extensions with the notable exceptions of MySQL (ext/mysql) and SQLite2 (ext/sqlite). So, to be on the safe side, I'd recommend using the PDO interface to talks with those databases or in the case of MySQL using the newer MySQLi (ext/mysqli) extension. Those interfaces provide prepared statement support, which allows for separation between query structure and the query parameters. It should be noted that while PDO does emulated prepared statements for older versions of MySQL that do not support them natively, emulation is still prone to the same kind of issues demonstrated here and in Chris’ article. Therefore for security reasons you should definitely consider upgrading to a more modern version of MySQL and SQLite (SQLite 3).
Amen.
David ist offline  
Alt 01.12.2008, 18:09  
Benutzer
 
Registriert seit: 16.10.2008
Beiträge: 41
malungo befindet sich auf einem aufstrebenden Ast
Standard

oje oje...ihr macht mir ja angst!

Aber wenn ich Integerwerte schon mal nur in Hochkomma in den sql String stelle kann mir z.B. ID="5 OR 1=1" ja z.B. schon gar nicht passieren!?

Desweiteren prüfe ich ja auf gültige Zeichen (regex)...das System dürfte dann ziemlich sicher sein!?

und dieser link:
mysql_real_escape_string() versus Prepared Statements - iBlog - Ilia Alshanetsky

hier ist man doch auch nur anfällig wenn Charset GBK ist, oder verstehe ich das falsch!? ...mit Latin1 dürften keine Probleme auftreten...

Prepared Statement scheint mir ein bisschen zu kompliziert...da ich ja nicht mal mit einem DB Objekt in meiner Webanwendung arbeite...
Kann ich auch ohne ein sicheres System hinbekommen, oder soll ich lieber gleich komplett umsteigen?

btw: Kann es sein, dass Strato und andere Anbieter z.B. gar kein PDO unterstützen? Wenn ja, bräucht ich ja einen Rootserver...

Geändert von malungo (01.12.2008 um 18:40 Uhr).
malungo ist offline  
Alt 02.12.2008, 12:55  
Erfahrener Benutzer
 
Benutzerbild von David
 
Registriert seit: 05.09.2007
Beiträge: 5.044
David wird schon bald berühmt werden
Standard

Zitat:
Zitat von malungo Beitrag anzeigen
Aber wenn ich Integerwerte schon mal nur in Hochkomma in den sql String stelle kann mir z.B. ID="5 OR 1=1" ja z.B. schon gar nicht passieren!?
in diesem Fall dann natürlich samt mysql_real_escape_string()

Zitat:
Zitat von malungo Beitrag anzeigen
hier ist man doch auch nur anfällig wenn Charset GBK ist, oder verstehe ich das falsch!? ...mit Latin1 dürften keine Probleme auftreten...
GBK hat sich Chris Shiflett als Beispiel rausgesucht. Ob es weitere Kombinationen gibt ...vermutlich.

Zitat:
Zitat von malungo Beitrag anzeigen
btw: Kann es sein, dass Strato und andere Anbieter z.B. gar kein PDO unterstützen?
ja, das ist ein Problem.
David ist offline  
Alt 02.12.2008, 13:00  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.988
PHP-Kenntnisse:
Fortgeschritten
nikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunft
Standard

Zitat:
Desweiteren prüfe ich ja auf gültige Zeichen (regex)...das System dürfte dann ziemlich sicher sein!?
Das Problem bei SQL Injection ist ja eben, dass sie aus gültigen Zeichen und typischer Sprache (z.B. Hochkommata) bestehen. Reguläre Ausdrücke sind meist Anhaltspunkte, oft aber keine Sicherheit. Schau mal hier, was ich zumThema Programmabbruch etc. geschrieben habe.
__________________
--
One pixel is still too big. Please make it smaller. ASAP.

Initiative Mittelstand.
Die wichtigste Gestaltungsregel im Screendesign ist Pi mal Daumen des Arbeitgebers.
--
nikosch ist gerade online  
 


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine 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 an
Gehe zu

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
malungo.de, htmlspecialchars sqlite, htmlspecialchars vor db, charset=gbk, htmlspecialchar vor, david system deutsche bahn, andsqlite, malungo probleme, mysql_real_escape_string() gbk

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




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum