Einfacher POST funktioniert nicht mehr (GB)

Hi Leute!

Bin vor einigen Wochen auf bplaced gestoßen und auch gleich hier her umgezogen!

jetz hab ich festgestellt, das meine POST funktion von meinem GB net will… ich blick allerdings nicht, wieso!!!

hab jetzt mal probehalber ein POST Script hier und eins auf meinen alten Server hochgeladen… beim alten funktionierts und hier leider nicht… kann mir jemand helfen?

hier das Script am alte Server:
heroldini.he.funpic.de/text/form.php
und hier das script auf bplaced:
heroldini.bplaced.net/text/form.php

Ich bin normal nicht der dümmste wenns um sowas geht, aber da blick ich jetz net durch g

hier der code von form.php:

<center>
<?php



echo '
<h1>Eintrag ins Gästebuch</h1>


<form name="gbform" method="POST" action="go.php">
<table border="0" cellspacing="0" width="370">
  <tr>
    <td width="80">Name:</td>
    <td><input type="text" name="nick" size="45"></td>
  </tr>
    <tr>
    <td width="80">Herkunft:</td>
    <td><input type="text" name="herkunft" size="45"></td>
  </tr>
    <tr>
    <td width="80">Mail:</td>
    <td><input type="text" name="mail" size="45"></td>
  </tr>
  <tr>
    <td width="80">ICQ:</td>
    <td><input type="text" name="icq" size="45"></td>
  </tr>
  <tr>
    <td width="80">Dein Text:</td>
    <td><textarea rows="14" name="text" cols="42"></textarea></td>
  </tr>
  <tr>
    <td width="80">&nbsp;</td>
    <td>
    <input type="submit" value="Eintragen" name="OK">
    <input type="reset"  value="Löschen"   name="delete">
    </td>

  </tr>
</table>
</form>
';
?>





</center>

und hier der Code der go.php:

<?php
echo '#';
echo $nick;
echo '#';
echo $text;
echo '#';
echo $herkunft;
echo '#';
echo $mail;
echo '#';
echo $icq;
echo '#';
?>

danke für die hilfe!
gruß ein verzweifelter heroldini :wink:

du musst schauen wo du die sachen speicherst, das liegt nämlich an der einstellung von register globals. statt z.B.

[code]INSERT INTO guestbook SET name=$name

entweder:
…SET name=$_POST[‘name’]

oder vorher schreiben:
$name = $_POST[‘name’] [/code]

mfg

ah ja… jetz gehts^^

aber ich begreif net wofür so net funktion gut sein soll…

mfg

Ist ein Sicherheitsrisiko, google am besten mal nach register_globals = off

mfg

  1. Man weiß, wo die Daten herkommen, CSRF wird dadurch viel einfacher.
  2. Der User kann globale Variablen initialisieren. Wenn du dir nicht angewöhnt hast, das selber zu machen, dann hast du die Arschkarte. Stell dir mal den Code vor, $allowed_tags definiert HTML-Tags, die in einer Nachricht erlaubt werden sollen:<span class="syntaxdefault">$allowed_tags</span><span class="syntaxkeyword">[]</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> </span><span class="syntaxstring">'b'</span><span class="syntaxkeyword">;<br /></span><span class="syntaxdefault">$allowed_tags</span><span class="syntaxkeyword">[]</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> </span><span class="syntaxstring">'i'</span><span class="syntaxkeyword">;<br /></span><span class="syntaxdefault">$allowed_tags</span><span class="syntaxkeyword">[]</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> </span><span class="syntaxstring">'u'</span><span class="syntaxkeyword">;</span><span class="syntaxdefault"> </span>Da $allowed_tags ja davor gar nicht existiert, d. h. die erste Benutzung von [] eigentlich Schwachsinn ist, kann der User folgenden Request absenden:GET /script.php?allowed_tags[]=script HTTP/1.1Et voilà, Sicherheitslücke.