Ankündigung

Einklappen
Keine Ankündigung bisher.

Sonderzeichen Problem /"

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Sonderzeichen Problem /"

    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

  • #2
    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

    Kommentar


    • #3
      Zitat von lazydog Beitrag anzeigen
      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
      Mhh... da ist leider kein Beispiel dabei: PHP: get_magic_quotes_runtime - Manual)

      Könntest du mir pls nen Beispiel zeigen?

      Kommentar


      • #4
        Zitat von moevydotnet Beitrag anzeigen
        Mhh... da ist leider kein Beispiel dabei: get_magic_quotes_runtime().
        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] bearbeiten

        Kommentar


        • #5
          Zitat von lazydog Beitrag anzeigen
          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] bearbeiten
          Ok thx,... habs nun eingebaut... man weis ja nie obs aufm server an ist oder nicht... also lieber einbauen dann hat man keine Probleme..

          Kommentar


          • #6
            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']);

            Kommentar


            • #7
              Zitat von Wolla Beitrag anzeigen
              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']);

              Ok.... Thx.... Dann macht der das stripslashes nur wenn es benötigt wird....

              Kommentar


              • #8
                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

                Kommentar


                • #9
                  Zitat von GTA26 Beitrag anzeigen
                  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
                  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.

                  Habe nur das problem das vor die sonderzeichen ein / eingefügt wird. Da ich nun den string mit stripslashes() bearbeite funktionierts...

                  Kommentar


                  • #10
                    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().

                    Kommentar


                    • #11
                      Zitat von Wolla Beitrag anzeigen
                      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().
                      Mhh.... Eigentlich möchte ich gar keine \ haben... Nornale sonderzeichen und umlaute reichen....

                      Wozu soll das gut sein automatisch ein \ vor bestimmte zeichen zu setzen.... Sehe da keinen vorteil nur nachteile...

                      Kommentar


                      • #12
                        Wozu soll das gut sein automatisch ein \ vor bestimmte zeichen zu setzen.... Sehe da keinen vorteil nur nachteile...
                        Deswegen haut man das ja wieder weg, siehe oben.

                        Kommentar


                        • #13
                          Zitat von Wolla Beitrag anzeigen
                          Deswegen haut man das ja wieder weg, siehe oben.
                          Ok... Ich machs nun mal generell weg... Wenn ich dann noch probleme hab dann mach ich das so wie oben beschrieben.... Ist halt aufwendiger

                          Kommentar

                          Lädt...
                          X