Ich hab mich nicht damit beschäftigt, aber ich glaube, Punkte zählen wäre noch verhältnismäßig einfach zu realisieren...
Beiträge von Afrael
-
-
Da musst du die gesamten $daten validieren. mysql_error() an User auszugeben sollte man außerdem vermeiden.
-
Ich sehe keinen Fehler, muss ich eingeloggt sein?
Hast du irgendwas an den Dateien in letzter Zeit geändert?
-
Ah. Hm. Hatte falsch gelesen.
@Threadersteller: Ich glaube, wie du das machst, ist das zu umständlich. Beschreib doch bitte genau, warum du den Scriptname dazuhaben willst.
Edit: Zu langsam getippt, Moment.Edit 2: Okay, ich verstehe jetzt, was du haben willst. Du müsstest in deiner rechnungsposten.php per $_GET['variablenname'] darauf zugreifen können. Ich empfehle dir, zu Testzwecken die Funktionen var_dump oder print_r zu verwenden und $_POST bzw $_GET auszugeben.
-
Aufpassen, dass kein bösartiger Code eingeschmuggelt wird, am besten, du liest dir das hier durch.
Warum das jetzt bei dir nicht klappt, weiß ich nicht, poste mal den ganzen Code, wo du $_POST[id] verarbeitest.
-
Tripod hat wahrscheinlich einfach die Fehlermeldung ausgeschaltet
PHPif (($_GET['page'] + $imagesPerPage) > $numberofactionpics) { $imagesPerPage = $numberofactionpics % $_GET['page']; $imagesPerPage = $imagesPerPage ? $imagesPerPage : $numberofactionpics; }
Das dürfte Zeile 200 sein, oder? Dann änder das mal aufPHPif ((($_GET['page'] + $imagesPerPage) > $numberofactionpics) && $_GET['page']) { $imagesPerPage = $numberofactionpics % $_GET['page']; $imagesPerPage = $imagesPerPage ? $imagesPerPage : $numberofactionpics; }
Ungestet, aber müsste klappen. Eine Modulo-Berechnung wird intern als Division durchgeführt. Eine Zahl % 0 ist somit nicht definiert. -
Ähm, du machst einen entscheidenden Denkfehler. Die Variablen sind einzeln per $_POST['variablenname'] verfügbar. D.h. du hast eine Variable $_POST['rechnungsnummer'] und $_POST['2tevar'], mit denen kannst du nach Belieben verfahren.
Dass du sie dann noch korrekt validieren solltest, muss ich noch erwähnen.
-
Ja, musst sie dann mit fopen("uploads/$mailfeld/info.txt", "w+") öffnen, dabei wird sie automatisch erstellt. Wenn $mailfeld aus Benutzereingaben kommt, musst du aufpassen, dass $mailfeld richtig validiert wird, siehe https://www.forum-hilfe.de/showthread.php?p=328000#post328000 und folgende.
-
Ich kenn mich mit der Forumsoftware leider überhaupt nicht aus. Grob gesagt musst du gucken, wo überall ein Verweis auf diese Datei arcade_cache.php ist (dafür brauchst du einen Editor, der in mehreren Dateien suchen kann), dann gucken, was von wo includiert wird und den überflüssigen Verweis entfernen (zwei Slashes vor die Zeile zu schreiben dürfte reichen). Ich hoffe aber, dass hier noch jemand mit mehr Fachwissen antwortet...
-
Verstanden, danke
-
-
Hallo,
ich bin gerade dabei, mich in den Bereich OOP einzulesen.
In dem Artikel zu Funktionen auf php::bar steht nun:ZitatAb PHP 5 werden Objekte immer als Referenz übergeben.
Dazu ein Beispiel, das ich mir überlegt habe.
Versteh ich das richtig, dass die letzte und vorletzte Zeile absolut das gleiche machen und das obige Zitat lediglich bedeutet, dass ich es mir sparen kann, das &-Zeichen hinzuschreiben? -
Läuft das ganze denn lokal bei dir oder hast du es auf einen Server hochgeladen? Wenn letzteres, ersetz "http://localhost/security/shop.php" durch "security/shop.php".
-
...bevor du mit JS is nen sinnlosen schwachsin schlecht zusammen codest...
Na, ich find nicht, dass man direkt mit derart Titeln um sich werfen muss (auch wenn sie in so einer schönen Alliteration stehen
) Der Meinung jedoch, dass das Script sinnlos ist, stimme ich natürlich zu.
-
So ziemlich gar nichts, außer evtl String-Ersetzungsfunktionen, aber auf die würde ich mich da auch nicht verlassen. Am einfachsten und sichersten ist immer noch, alle Werte, die vorkommen dürfen, in ein Array zu packen und dann abzugleichen, ob die Eingabe im Array ist.
Könnte evtl einer der Mods den Thread splitten?
-
Weil die Server wohl so gut gesichert waren. Aber wenn es unbedingt sein muss, hier hast du eine Endlosschleife durch Selbstinklusion.
http://www.lhc-facts.ch/index.php?page=index.php%00 -
-
Was passiert, wenn ich per $_POST['seitenname'] folgendes übergebe?
Zitat
../index.php%00
Dann schreibt das Script inZitat../seiten/../index.php%00.html
Die rot gekennzeichneten Teile fallen aber quasi raus aus den folgenden Gründen:
%00, also 0 Byte, kennzeichnen auf Unix (und die meisten Server laufen ja auf Unix) das Ende der Zeichenkette. ../ navigiert ein Verzeichnis hinauf.
In Wirklichkeit wird mein geposteter Inhalt also inZitat../index.php
geschrieben und die vorhandene Datei dabei überschrieben.Normalerweise kann man %00 zwar nicht so einfach per POST verschicken, aber wozu gibt es Erweiterungen wie Hackbar oder Tamper Data. Selbstverständlich sollten diese nur zu Testzwecken benutzt werden
-
Pion, zu deinem Codeschnipsel:
PHP
Alles anzeigen<? if(isset($_REQUEST['save'])) { $seitenname = $_POST['seitenname']; $elm1 = $_POST['elm1']; if(get_magic_quotes_gpc()){ $elm1 = stripslashes($elm1); }; $datei = fopen("../seiten/$seitenname.html","w+"); fwrite($datei,$elm1); } ?>
Bitte google mal nach "directory traversal null byte", dann weißt du auch, warum ich auf deinem Server beliebig PHP-Dateien anlegen könnte. -
Wobei man bei Variante 2 und 3 der Vollständigkeit halber anmerken muss, dass die nur mit short_open_tag = 1 gehen...