Hi @ all,
ich möchte einen String -> ein "Hund" ist "rot" <- in der Datenbank Speichern.
In der Datenbank steht jedoch vor jedem SOnderzeichen "%&() usw. jeweils ein /. Der String sieht in der DB so aus: ein /"Hund/" ist /"rot/"
Ich übertrage von Flex die Daten auf eine .php Datei. Die .php Datei speichert mir dann die Datensätze. In Flex sieht der String noch richtig aus, d.h. das Problem muss in der .php Datei liegen.
Hier findet Ihr die Datei: addQuestion.php - questiondatabase - Google Code
Hat jemand eine Idee warum dieses / hinzugefügt wird?
Vielen Dank im vorraus...
Gruss Michael
Ankündigung
Einklappen
Keine Ankündigung bisher.
Sonderzeichen Problem /"
Einklappen
Neue Werbung 2019
Einklappen
X
-
Ok... Ich machs nun mal generell weg... Wenn ich dann noch probleme hab dann mach ich das so wie oben beschrieben.... Ist halt aufwendigerZitat von Wolla Beitrag anzeigenDeswegen haut man das ja wieder weg, siehe oben.
-
Deswegen haut man das ja wieder weg, siehe oben.Wozu soll das gut sein automatisch ein \ vor bestimmte zeichen zu setzen.... Sehe da keinen vorteil nur nachteile...
Einen Kommentar schreiben:
-
Mhh.... Eigentlich möchte ich gar keine \ haben... Nornale sonderzeichen und umlaute reichen....Zitat von Wolla Beitrag anzeigenMagic Quotes is eine Servereinstellung, bei der dir vor bestimmte Zeichen automatisch ein Backslash hingemalt wird. Das hat mit Sql-Injections absolut nichts zu tun.
Man wehrt sich dagegen, dass man den Parameter abfragt und dann die automatischen Backslashes mit stripslashes() wieder weghaut.
Wenn dein User '\' selbst eingibt, dann hast du bei MQ '\\' im String. Wenn du diesen String dann wieder zum Ändern ins Eingabefeld ausgibst, und der user sendet die Daten wieder, dann hast du '\\\\' und das nimmt kein Ende.
Vor dem Speichern escapest du die Daten mit mysql_real_escape_string, und nach dem Wiederauslesen gibst du die Daten aus mit htmlspecialchars().
Wozu soll das gut sein automatisch ein \ vor bestimmte zeichen zu setzen.... Sehe da keinen vorteil nur nachteile...
Einen Kommentar schreiben:
-
Magic Quotes is eine Servereinstellung, bei der dir vor bestimmte Zeichen automatisch ein Backslash hingemalt wird. Das hat mit Sql-Injections absolut nichts zu tun.
Man wehrt sich dagegen, dass man den Parameter abfragt und dann die automatischen Backslashes mit stripslashes() wieder weghaut.
Wenn dein User '\' selbst eingibt, dann hast du bei MQ '\\' im String. Wenn du diesen String dann wieder zum Ändern ins Eingabefeld ausgibst, und der user sendet die Daten wieder, dann hast du '\\\\' und das nimmt kein Ende.
Vor dem Speichern escapest du die Daten mit mysql_real_escape_string, und nach dem Wiederauslesen gibst du die Daten aus mit htmlspecialchars().
Einen Kommentar schreiben:
-
Mhh ich möchte ja sonderzeichen in der db speicher sichern da ich nicht weis was der user für eingaben macht. Es ist jedoch warscheinlich das sonderzeichen verwendet werden.Zitat von GTA26 Beitrag anzeigenich denke es ist serverseitig aktiv, gib doch mal phpinfo(); ein
und schau mal was alles aktiv gesetzt wurde.
Richte deine DB doch so ein das die " Zeichen fix itegriert werden mit jeder Eingabe.
So muss es dein Script nicht mehr tun. und alle Sonderzeichen können entfernt werden. Was deine DB wieder ein wenig sicherer macht betreffend PHP/SQL Injection. Übrigens würde ich das magic_quots nicht verwenden. So viel ich weiss ist es veraltet und mit PHP6 nicht mehr aktiv!!! Also Vorsicht. Manno mann, jetzt gebe ich noch sicherheits Tipps
LG
Habe nur das problem das vor die sonderzeichen ein / eingefügt wird. Da ich nun den string mit stripslashes() bearbeite funktionierts...
Einen Kommentar schreiben:
-
ich denke es ist serverseitig aktiv, gib doch mal phpinfo(); ein
und schau mal was alles aktiv gesetzt wurde.
Richte deine DB doch so ein das die " Zeichen fix itegriert werden mit jeder Eingabe.
So muss es dein Script nicht mehr tun. und alle Sonderzeichen können entfernt werden. Was deine DB wieder ein wenig sicherer macht betreffend PHP/SQL Injection. Übrigens würde ich das magic_quots nicht verwenden. So viel ich weiss ist es veraltet und mit PHP6 nicht mehr aktiv!!! Also Vorsicht. Manno mann, jetzt gebe ich noch sicherheits Tipps
LG
Einen Kommentar schreiben:
-
Ok.... Thx.... Dann macht der das stripslashes nur wenn es benötigt wird....Zitat von Wolla Beitrag anzeigenNatürlich weiß mal, ob magic quotes auf dem Server an oder aus sind:
PHP-Code:if ( get_magic_quotes_gpc() ) {
$_POST['name'] = stripslashes($_POST['name']);
}
Einen Kommentar schreiben:
-
Natürlich weiß mal, ob magic quotes auf dem Server an oder aus sind:
PHP-Code:if ( get_magic_quotes_gpc() ) {
$_POST['name'] = stripslashes($_POST['name']);
}
Einen Kommentar schreiben:
-
Ok thx,... habs nun eingebaut... man weis ja nie obs aufm server an ist oder nicht... also lieber einbauen dann hat man keine Probleme..Zitat von lazydog Beitrag anzeigenNein, aber damit siehst du, ob magic_quotes_runtime, bzw. magic_quotes_gpc eingeschaltet sind (du siehst das auch mit [man]phpinfo()[/man]). Wenn ja, kannst du es entweder ausschalten, oder alle deine Daten bei der Ausgabe mit [man]stripslashes()[/man] bearbeiten
Einen Kommentar schreiben:
-
Nein, aber damit siehst du, ob magic_quotes_runtime, bzw. magic_quotes_gpc eingeschaltet sind (du siehst das auch mit [man]phpinfo()[/man]). Wenn ja, kannst du es entweder ausschalten, oder alle deine Daten bei der Ausgabe mit [man]stripslashes()[/man] bearbeitenZitat von moevydotnet Beitrag anzeigenMhh... da ist leider kein Beispiel dabei: get_magic_quotes_runtime().
Einen Kommentar schreiben:
-
Mhh... da ist leider kein Beispiel dabei: PHP: get_magic_quotes_runtime - Manual)Zitat von lazydog Beitrag anzeigenWahrscheinlich gehts ja nicht um «/» (Slash), sondern um «\» (Backslash). Schau dir mal [man]get_magic_quotes_runtime()[/man] und Verwandte an. Notfalls halt bei der Ausgabe mit [man]stripslashes()[/man] bearbeiten
Könntest du mir pls nen Beispiel zeigen?
Einen Kommentar schreiben:
-
Wahrscheinlich gehts ja nicht um «/» (Slash), sondern um «\» (Backslash). Schau dir mal [man]get_magic_quotes_runtime()[/man] und Verwandte an. Notfalls halt bei der Ausgabe mit [man]stripslashes()[/man] bearbeiten
Einen Kommentar schreiben:

Einen Kommentar schreiben: