PHP:
ist es möglich die folgenden Fälle zu hacken, muss ich also addslashes hinzufügen? :
oder
Edit: oder soll ich einfach is_numeric verwenden?
PHP:
ist es möglich die folgenden Fälle zu hacken, muss ich also addslashes hinzufügen? :
oder
Edit: oder soll ich einfach is_numeric verwenden?
Geändert von Drakes (21.05.2008 um 17:44 Uhr)
--
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).
Javascript/Ajax
Mit folgendem Script erstelle ich über die getdata.php einen DB Request und alsse ihn ausgeben
Dazu muss ich sagen, dass es um ein Newsscript geht, wobei der Ajax-Anteil die Kommentare ausgibt.
Der Parameter "nid" steht für die News-Id. Das Problem ist nur folgendes:
Das Newsscript wird in die index.php includet, und dort wird auch die Variable "nid" festgelegt, allerdings befindet sich der Javascript der index.php schon im Head-Teil, obwohl die Funktion (loadData) erst im body-Teil ausgeführt wird.
Von daher kennt das Javascript die Variable nid noch nicht.
Klar, man kann die Variable nid selbstverständlich auch vor dem Head-Teil in der index.php festlegen, aber das will ich nicht, ich will dass sie erst in der includeten Datei festgelegt wird.
Also, wie kann ich die Funktion loadData ausführen, sodass nur Kommentare mit der entsprechenden Newsid ausgegeben werden?
Irgendwie verstehe ich dein Problem nicht so recht. Du hast eine Funktion in einer Datei die includet wird. Diese Funktion willst du später mit einem Parameter aufrufen. Spätestens dort, wo du den Funktionsausruf mit PHP ausgeben lässt, müsste dir doch aber die News-ID bekannt sein, oder? Also im Stil von
Oder verstehe ich das falsch?
Also, der Javascript, welcher die Funktion erhält befindet sich im Head-Teil der index.php
Danach (und das ist warscheinlich das Problem meines Scripts) wird die Funktion loadData() im Body-Teil der index.php aufgerufen.
Das ist insofern problematisch, weil die Funktion auf diese Weise quasi immer aufgerufen wird, da sie in der index definiert ist, auch wenn das entsprechende News-Script nicht includet wird.
Demnach habe ich den Body folgendermaßen definiert.
Wobei der content=news_single hier für das newsscript steht.
Am liebsten wäre es mir aber, wenn sich loadData() in der includeten Datei ausführen lässt, allerdings ohne klicken.
Das Problem ist, dass mir hierbei nur noch <body onload=""> bleibt, aber in eine Datei, welche man includet gehört nunmal kein <body>
Joa..hätte ich auch drauf kommen können![]()
Trotzdem danke !
Naja, ich lasse sie doch ausgeben, nur eben per Ajax. Sie aktualisieren sich eben nur nicht im Shoutboxstil, sondern nur dann, wenn jemand einen Kommentar schreibt, was mich auch gleich zur zweiten Frage führt, denn genau das möchte ich auch irgendwie erreichen..
Bei meinem Eingabeformular benutze ich folgenden Code im Form Tag
Schreibe ich jetzt hinter savaData(); noch loadData(); so trägt er den Kommentar zwar ein, aber ich lande wieder auf der index ohne $content.
Wie kann ich also am besten die Kommentare aktualisieren, wenn jemand einen Eintrag verfasst?
Man sollte niemals eine Benutzereingabe direkt ausgeben bzw. anders weiterverwenden.
Man sollte die Eingabe immer erst prüfen bzw. dafür sorgen, das keine gefährlichen Daten drin vorkommen.
In diesem Fall kämme wohl intval in Frage.
Der Inhalt der Seite kann über die URL beinflußt werden, in diesem Falle könnte beliebiges HTML eingeschleust werden. Damit lässt sich beliebiger Inhalt in die Seite einfügen und damit kann man den User wunderbar täuschen, indem man falsche Informationen einbindet. Oder man stiehlt dem User einfach seine Cookies und damit möglicherweise seine Login-Informationen. Im Zweifelsfalle wartet man, bis der User sein Passwort eingibt und schickt es dann an den Angreifer. XSS sollte man nicht unterschätzen.
--