Hat auch keinen wirklichen Sinn mehr.
Hab dem Besitzer empfohlen mal schnellstens den Webspaceanbieter zu wechseln.
Trotzdem danke an alle, vorallem an mitaki![]()
Hat auch keinen wirklichen Sinn mehr.
Hab dem Besitzer empfohlen mal schnellstens den Webspaceanbieter zu wechseln.
Trotzdem danke an alle, vorallem an mitaki![]()
Hi Leute,
wie kann ich fuer meine MySQL Querys eine Log Datei Schreiben? Am besten in einer Funktion. Ich Stelle mir das so vor:
So stell ich mir das vor aber irgend wie geht das nicht KP wieso. =)
Kennt jemand noch seiten wo ich Allgemeines zum Lesen ueber LogDatein mit PHP und MySQL finde?
Zunächst würde ich den Aufruf der Logfunktion anders aufbauen.
Dass es nicht funktioniert liegt daran, dass PHP (bzw. die MySQL-API) keine Funktion namens mysqlErrorLog() kennt. Diese müsstest du zunächst selbst erstellen.
In dieser Funktion möchtest du sicher mit Textdateien arbeiten. Beispielsweise deren bisherigen Inhalt auslesen, oben neuen Inhalt hinzufügen und das ganze dann wieder in die Textdatei speichern.
Leider finde ich gerade keine guten und aktuellen Tutorials für das Arbeiten mit Textdateien :/
Eventuell dieses, aber bitte nicht die short-tags übernehmen
Für die Fehlerinformationen stehen PHP die Funktionen mysql_error() und mysql_errno() zur Verfügung.
Das ist mir bewusst, das ist ja auch eine eigene Funktion und die wollte ich ja nun mit mysql_query() OR mysqlErrorLog() aufrufen. Ansich Funktionierte ja auch die Funktion nur halt nicht in Verbindung mit OR...Zitat
...
Ah ich seh grad ich habe noch das die() vergessen. =)
So sollts eigentlich aussehen.
Wobei die() der schlechteste aller Fehlerhandler ist. Nach die() wird das Skript nicht mehr weiterverarbeitet.Zitat
Siehste?
Beim Testen mag das noch in Ordnung sein, aber bei einer öffentlichen WebApp wäre das unter Umständen fatal.
--
Die Wespe, der Fuchs und der Vogel gehen erst in die Oper und dann auf Safari. 8)
Nützliche Adressen (HTML, CSS, PHP, MySQL, Werkzeuge) für Webgestalter.
-> Übersicht meiner Artikel (HTML Strict verstehen Teil 1-8 und weitere interessante Themen).
Stimmt eigentlich. =)
Mal gucken was ich so naechste Woche hingebastelt bekomme.
Danke schon mal.
Geändert von Blakkeight (27.01.2007 um 15:03 Uhr)
Naja, oft ist das ja genau das, was man will. o_O Man muss halt nur vorher alles machen, was man bei einem Fehler machen will, aber dann ist an die () oder exit doch nichts auszusetzen. .___.
Es sei denn natürlich, der Fehler ist nicht so schwer und man kann trotzdem weitermachen...
Also dein Problem ist, dass selbst wenn mysql_query() "false" zurückgibt, mysqlErrorLog() nicht aufgerufen wird? o_O Erschiene mir merkwürdig, bei mir funktioniert das problemlos!Bist du dir sicher, dass es nicht aufgerufen wird, und nicht nur nicht funktioniert?
Ansonsten würde ich das die() weglassen und stattdessen exit entweder in die Funktion schreiben, oder, noch besser, mitakis sauberere Version - ohne "or", dafür mit anschließender if-Abfrage - mit einem exit drin verwenden. Also in etwa:
Ich denke zwar nicht, dass es das ist, aber du hast "WHERE" falsch geschrieben, auch im vorigen Post.Zitat
--A human is a system for converting dust billions of years ago into dust billions of years from now via a roundabout process which involves checking email a lot.
Im Code bei mir ist es richtig geschrieben, hier sollte es ja auch nur ein bsp. sein wie es bei mir ungefaehr aussieht, den Original Code habe ich leider auch nicht hier, erst ende der Woche wenn mein Laptop wieder Zuhause ist. (Aus Faulheit auf Schule gelassen.)Zitat
Wie gesagt ich Spiel mir die Woche noch einen mit weg und dann sehen wa weiter und ich meld mich noch mal.
Danke schon mal fuer eure Bemuehungen.![]()
Hi Leute.
Also, ich wollte mich mal in Sachen Sicherheit weiterbilden.
Dabei geht es mir um zwei große Bereiche : Ein Loginscript und Eintragen von Formulartexten in Datenbanken.
Zum ersteren : Kann man im Array $_SESSION rumfummeln?
Bei den meisten Tuts wird der geschütze Inhalt dann gezeigt, wenn ein bestimmter Wert in das Array SESSION geschrieben wurde, also zum Beispiel, wenn $_SESSION[benutzer_id] angegeben ist, was passiert, wenn man die Logindateien korrekt eingegeben hat.
Ist das sicher? Ich habe zur Sicherheit noch einen anderen notwendigen Wert in das Array schreiben lassen, wenn die Daten korrekt waren, denn auf manchen Seiten wird geschrieben, man soll den Namen des Schlüssels im SESSION Array nicht zu einfach machen.
Folglich muss man in dem Array ja auch rumwurschteln können, oder wie meinen die das?
Zum letzten :
Ich bin allgemein in solchen Sachen nicht sonderlich begabt, also in Sachen Sicherheit.
Wenn ich beispielsweise in einem Kommentarsystem die Eingaben so wie sie da stehen in die Datenbank eintrage und sie erst beim Ausgeben mit htmlspecialchars und nl2br umwandeln lasse, kann das auch Schaden in der Datenbank oder sonst wo anrichten?
Gebet mir euer Wissen über Sicherheit, ich brauche es. ;_;
Und ja ich weiss, dass mal eigentlich keine totale Sicherheit erreichen kann.
--Droggelbecher.
Geändert von Tessio (27.01.2007 um 17:40 Uhr)
Zu den Sessions, vlt findest ja hier was.
Vorm eintragen in die DB:
Addslashes
Trim
HTMLSpecialChars
Strip Tags
Beim Auslesen/Anzeigen:
nl2br
Stripslashes
So mach ich es, damit keiner unerwuenschten Code reinschreibt.
@Samogas. Das mit der Session verstehe ich nicht ganz. Arbeitest du nach einem Tutorial und verstehst nicht was gemeint ist?
Zur Sache mit DB/Benuterangaben:
Momentan wird bei den meisten PHP-Anbietern auf Daten, die vom Benutzer kommen (Cookie-, Get- und Postdaten) automatisch addslashes angewendet.
Es ist empfehloenswert, bei Daten, die du in die Datenbank schreibst zuerst stripslashes() anzuwenden und dann die datenbankspezifische Maskierungsfunktion [MySQL: mysql_real_escape_string()]. Dadurch werden alle Zeichen, die für das Datenbanksystem gefährlich sind maskiert (bzw. escaped).
Wenn du die Daten aus der Datenbank herausholst sind diese nicht mehr escaped, ist auch meistens nicht nötig. Je nachdem, wozu du diese Daten dann verwenden willst kannst du htmlentities() und nl2br() darauf anwenden.
Erstmal danke an euch beide. ^_^
Doch doch, ich verstehe es schon.
Ich hab ja nur gefragt, ob der Internetnutzer auf einer fremden Seite in einer gestarteten Session die Werte in dem SESSION-Array verändern kann, weil bei diesem Turorial halt gesagt wurde, man soll die Benennung schwerstmöglich machen.
Das wäre aber sehr sinnlos, wenn man das könnte, also wird es wohl nicht so sein.
Wie sieht es denn mit der Session-ID aus? Die wird ja, wenn nicht anders eingestellt, als Cookie gespeichert.
Sollte man sich bei der Art der ID-Speicherung noch Gedanken um die Sicherheit machen?
Der einzige Weg, der mir einfällt, um an eine S-ID von einem anderen zu kommen, wäre, dass dieser an dessen PC geht oder sich die ID geben lässt.
Oder gibts da auch fießere Tricks?
(Wie ihr sicher merkt, habe ich schon ganz böse Erfahrungen in Sachen Admin Bereich machen müssen ;_;)
Vielen dank. :)
Nicht wirklich das, was meine Frage direkt beantwortet, aber auch nützlich, danke. ^^
Alles klar. _o/
--Droggelbecher.
Wenn das deine Problematik ist, dann ist HTTP-Authentifizierung (.htaccess) empfehlenswert. Sehr sicher und bei einem entsprechendem Passwort nur mit BruteForce knackbarZitat
Ja, sofern sich dieser Benutzer die entsprechende Session zu eigen macht und die Anwendung entsprechende Bearbeitungsformulare bietet.Zitat
Hast du eventuell die Adresse dieses Tutorials parat?
Unter Umständen kann die SID dennoch in die URI geschrieben werden. Dann reicht eventuell eine kopierte Adresse um sich die Sitzung zu eigen zu machen.Zitat
Alles was irgendwie vom Benutzer kommt ist potenziell gefährlich. Wenn du eine Sitzung startest und die ID per URI weitergibst kannst du z.B. prüfen, ob bei einem Neuaufruf mit dieser ID die IP-Adresse noch identisch ist.Zitat
Es gibt mehrere Wege, Session IDs oder allgemein Cookies zu stehlen, das hängt meist mit fehlerhafter Programmierung zusammen.Zitat
Nebenbei zur strip_tags-Funktion. Diese ist nur bedingt nützlich, da anscheinend alles was die Form <*> hat entfernt wird.