Post Method

PHP, Ajax, CSS, HTML, Javascript
Eben für die wirklich Harten, die alles selber machen.
Antworten
Benutzeravatar
KeineAhnung
Beiträge: 349
Registriert: Di 29.Mai, 2007 17:35
Wohnort: NRW
Kontaktdaten:

Post Method

Beitrag von KeineAhnung »

Ich habe eine Datei, die übergibt den eingegeben Text folgendermaßen:

Code: Alles auswählen

<form action="ausgabe.php" method="post">

so, aber wie schaffe ich es, das mein 2 script (mit dem namen ausgabe.php) nur die "Post dingsdabumsda oder wie die heißen" von meinem server annimmt, denn so wies jetzt ist kann man dieses:

Code: Alles auswählen

<form action="ausgabe.php" method="post">
auch bei anderen seiten hinmahcne, nur dann vor "ausgabe.php" noch meine seiten URL, und dann nimmt der diese "Post dingsdabumsda oder wie die heißen" trotzdem an, wie kann ich das verhiendern ?
Zuletzt geändert von KeineAhnung am Mi 19.Sep, 2007 17:19, insgesamt 2-mal geändert.
Benutzeravatar
oxpus
Administrator
Beiträge: 28735
Registriert: Mo 27.Jan, 2003 22:13
Wohnort: Bad Wildungen
Kontaktdaten:

Beitrag von oxpus »

???

Mal zum Grundsätzlichen:
Ein Formular, welches mit <form ...> </form> erstellt wird, überträgt Daten, wenn man ein Submit sendet.
Letzteres geschieht meist, in dem man auf einen "Submit"-Button klickt, der erstellt werden muss, um das Formular absenden zu können.
Die Methode, also GET oder POST ist dabei nicht unerheblich, bei einem Formular bietet sich aber am besten POST an.

Damit wäre, zumindest erst einmal von der Definition her, das Formular erstellt und würde auf Interaktion des Users hin Daten an den Server senden.
Dieser liest die Daten dann mit $_GET oder $_POST (kommt dann eben auf die Formular-Methode an!) aus.

Bleiben wir beim üblichen, also $_POST:
Mit PHP kann man die POST-Daten mit $_POST (alte Version = $HTTP_POST_VARS = phpBB 2) auslesen.
Wenn ein Formular abgesendet wird, werden damit auch so genannte Parameter mit erstellt und diesen die betreffenden Werte zugewiesen.
Das geschieht entweder im action-Element des form-Tags, also z. B. action="index.php?start=0", wobei dann start der Parameter ist, hier mit dem Wert 0, also für PHP auch "empty".
Oder die klassische Weise per input-Tag, wie z. B.:

Code: Alles auswählen

<input type="text" name="username" value="" />
um ein Textfeld (mit Standardgrösse und -formatierung) mit dem Namen "username" zu definieren, was beim Seitenaufbau zunächst leer ist.
"username" ist hier dann der Parameter, der mit $_POST ausgelesen werden kann.
Also dann $_POST['username'] (die Globals $_GET und $_POST sind immer Arrays).

Und dann kann man im bei "action" angegebenen Script so mit diesen Werten weiter arbeiten...
Karsten Ude
-={ Das Mädchen für alles }=-
Kein Support per Messenger, Email oder PN! Unaufgeforderte Nachrichten werden ignoriert!
No support per Messenger, Email or PM. Each unasked message will be ignored!
Benutzeravatar
KeineAhnung
Beiträge: 349
Registriert: Di 29.Mai, 2007 17:35
Wohnort: NRW
Kontaktdaten:

Beitrag von KeineAhnung »

wenn ich das mit dem klassichen mache gehts ja so wie ichs will, aber jemand anderes könnte dann einfach das erste script mit der eingabe kopieren und somit dann mit der POST methode auf 2 verweisen, script 1:

Code: Alles auswählen

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 3.2//EN">
<html>
  <head>
    <title>MD5 Verschlüsseln</title>
    <link rel="stylesheet" type="text/css" href="style.css">
  </head>
  <body>
    <form action="ausgabe.php" method="post">
      <center>
         <p>Gib das zu verschlüsselnde Passwort/Text ein und klicke danach auf "Ok", danach wird der Text/Passwort MD5 verschlüsselt</p>
        <input type="text" size="17" name="Inhalt"><br>
        <br>
        <input type="submit" value="OK">
      </center>
    </form>
  </body>
</html>
und in script 2 benutze ich folgenden code:

Code: Alles auswählen

<?php
echo md5($_POST["Inhalt"]);
?>
wie schon oben (in diesem post) geschrieben funktioniert alles, nur das eine person script 1 kopierne und damti direkt an script dieses POST senden oder so, so ganz vesteh ich das eh nicht :D
Benutzeravatar
oxpus
Administrator
Beiträge: 28735
Registriert: Mo 27.Jan, 2003 22:13
Wohnort: Bad Wildungen
Kontaktdaten:

Beitrag von oxpus »

Daß jemand ein Formular erstellt und abschickt und es auf einer anderen (z. B. einer Deiner) Seiten landet, ist nichts neues.
Du musst daher nur sicher stellen, daß der User, der das Formular auch abschickt, selbiges auch darf.
Dazu gibt es in phpBB ja die betreffenden Möglichkeiten dazu, ausserhalb von phpBB kann man die IP als Referenz nehmen, sofern diese auch in einem Cookie gespeichert wurde (ein ganz normales Session Management eben).

Ohne Userprüfung ist es immer unsicher, weil man eben "türken" kann.
Aber dann wären die Daten eh im betreffenden Script zu prüfen, ob man logisch korrekte Daten erhalten hat oder nicht.
Wer hier sicher arbeiten will, muss eh auf andere Protokolle wie HTTPS umstellen und/oder zumindest ein Session Management integrieren.
Karsten Ude
-={ Das Mädchen für alles }=-
Kein Support per Messenger, Email oder PN! Unaufgeforderte Nachrichten werden ignoriert!
No support per Messenger, Email or PM. Each unasked message will be ignored!
Benutzeravatar
KeineAhnung
Beiträge: 349
Registriert: Di 29.Mai, 2007 17:35
Wohnort: NRW
Kontaktdaten:

Beitrag von KeineAhnung »

ach, egal, für meine sachen genügt das das auch andere das nehmen können (SESSIONS ??? xD sowas kenn ich nicht xD)
Benutzeravatar
KeineAhnung
Beiträge: 349
Registriert: Di 29.Mai, 2007 17:35
Wohnort: NRW
Kontaktdaten:

Beitrag von KeineAhnung »

[quote="oxpus";p="76246"]ein ganz normales Session Management eben).[/quote]

und wo gibts dazun tutorial ? :D

(ja ich war auf php.net, aber das hat mir ja schon biem 1 schritt geholfen, mehr aber nicht :wall: )

also ich habe es hinbekommen das wenn ich das forumular abschicke auf z.B:

Code: Alles auswählen

/ausgabe.php?PHPSESSID=w798t48oeao68arw6478orfrthrfzrz
oder so komme, aber wie schaffe ichs das z.B. das 2 script das überprüft ob die richtig ist... oder nützt das oben von mir überhaupt was ???
Zuletzt geändert von KeineAhnung am So 26.Aug, 2007 12:02, insgesamt 1-mal geändert.
Benutzeravatar
oxpus
Administrator
Beiträge: 28735
Registriert: Mo 27.Jan, 2003 22:13
Wohnort: Bad Wildungen
Kontaktdaten:

Beitrag von oxpus »

und wo gibts dazun tutorial ?
Nrgends. Das Session Management muss immer individuell aufgebaut werden, je nach Bedarf eben.

Warum willst Du denn das Formular so gezielt schützen?
Werden denn sooooo sensible Daten übertragen, daß sich der Aufwand lohnt?

Nochmal:
Ohne ein komplettes Session Management sollte man keine sensiblen Daten verarbeiten, alles andere lässt sich auf Logik hin prüfen.
Und die PHPSESSID würde ich auch nie in einem Quellcode verwursten.
Ist auch eine Sicherheitslücke!
Karsten Ude
-={ Das Mädchen für alles }=-
Kein Support per Messenger, Email oder PN! Unaufgeforderte Nachrichten werden ignoriert!
No support per Messenger, Email or PM. Each unasked message will be ignored!
Benutzeravatar
KeineAhnung
Beiträge: 349
Registriert: Di 29.Mai, 2007 17:35
Wohnort: NRW
Kontaktdaten:

Beitrag von KeineAhnung »

naja, so sicher sind die daten jetzt nicht, bei der datei1 wird ein text/passwort eingegeben, und bei datei2 das passwort/text ion MD5, Crypt, SHA1, und noch 2 anderen arten ausgegeben.
Benutzeravatar
oxpus
Administrator
Beiträge: 28735
Registriert: Mo 27.Jan, 2003 22:13
Wohnort: Bad Wildungen
Kontaktdaten:

Beitrag von oxpus »

Also ohne jetzt wirklich sensible Vorgänge zu steuern, solltest Du Dir hier überlegen, warum überhaupt eine Absicherung nötig sein soll.
Zumal auch erst ein Hacker auf Deine Seite aufmerksam sein muss, um Interessantes zu entdecken, was sich zu holen lohnt.

Wenn man Passwörter über ein Formular sendet, ist es letztlich beinahe egal, wie sicher das Form ist, da diese ja immer zu prüfen sind, um sie gegen irgendwas zu vergleichen. Erst dann steht ja die Korrektheit fest.
Der Übertragungsweg dahin ist dann egal.
Und wenn hier ein anderer "von aussen" mit einem getürkten Formular die Daten absendet, muss er immer noch die korrekten Daten senden, um weiter zu kommen.
Also wäre hier die Formular-Sicherheit wirklich zu vernachlässigen.

Und auch in Systemen mit Session Management muss man immer prüfen, ob die gesendeten Daten auch wirklich korrekt sind.
So werden Session-Daten aus den $_SERVER-Globals mit den Cookies ebenso verglichen, wie Passworteingabe mit den Daten in der Datenbank zum betreffenden User.
Da ist es auch egal, von wo das Formular kommt.
Einen wirklichen Nutzen hat man also nicht, wenn man es faken wollte ;)

Zuletzt müsste man eben das Script kennen, welches man mit einem gefakten Form anspricht, um an den richtigen Stellen die richtigen "schädlichen" Daten zu senden.
Und selbst die kann man noch mit einfachen Mitteln filtern, wie das im phpBB auch überall gemacht wird.

Kurzum:
Mach Dir nicht zu viele Gedanken, um diese Möglichkeiten.
"Genutzt" haben gefakte Forms noch nicht wirklich.
Zuletzt geändert von oxpus am So 26.Aug, 2007 15:30, insgesamt 1-mal geändert.
Karsten Ude
-={ Das Mädchen für alles }=-
Kein Support per Messenger, Email oder PN! Unaufgeforderte Nachrichten werden ignoriert!
No support per Messenger, Email or PM. Each unasked message will be ignored!
Benutzeravatar
KeineAhnung
Beiträge: 349
Registriert: Di 29.Mai, 2007 17:35
Wohnort: NRW
Kontaktdaten:

Beitrag von KeineAhnung »

achso ok, dann lass ichs einfach so ;)
Antworten