PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : _GET übergabe verstecken oder verschlüsseln?



Stormsam
20-11-2004, 20:59
HI@all,

habe ein Problem:

Ich möchte einen SMS-Dienst anbieten.
Kann den SMS-Gateway allerdings nur per GET-Übergabe erreichen.

Nun möchte ich nicht, das jeder diese Übergabe im Browser sehen kann - da dann jeder mit dieser Adresse SMS verschicken kann.
Die Adresse sieht ungefähr so aus:

http://gateway.sms.de/?id=ICH&pw=meinPW&nummer=0175111111&text=hallo

Habe mir mal angeschaut wie das andere Seiten machen und da steht meist nur soetwas:

<form action="index.php?sms=544848ac03ec59e6b46db36d1efff052&amp;s=s uche_resultat" method="POST">

Wie kann ich die oben genannte GET-Übergabe nun für den User der mein Formular ausfüllt "unsichtbar" oder "unlesbar" machen ?
Hat da jemand eine Idee?

MfG
Stormsam

Knallfrosch
21-11-2004, 11:19
Du könntest versteckte Felder verwenden:



<input type="hidden" name="user" value="DU" />

Stormsam
21-11-2004, 13:33
HI,

danke für die antwort.

Hidden bringt da glaube ich nicht viel.

Im Moment sieht mein Formular ungefähr so aus so aus:


<?php
if ($_POST['text'] != "") {
header("Location: http://gateway.sms.de/?id=ICH&pw=meinPW&nummer=".$_POST['nummer']."&text=".$_POST['text']."/");
} else {


echo "<form action=\"sms.php\" method=\"post\" name=\"SMSSendForm\">";

echo "<input type=\"text\" size=\"11\" maxlength=\"11\" name=\"text\" id=\"2\">";
echo "<input type=\"text\" size=\"11\" maxlength=\"11\" name=\"nummer\" id=\"2\">";


echo "<input type=\"submit\" value=\"senden\"> ";
}
?>

Jetzt kann aber jeder mein Passwort im Browser sehen. Da der header das ja einfach weiterleitet.
Und so kann auch jeder mein passwort und mein username sehen, und jeder kann über meinen account so viele smse schicken wie er will.

Wie kann ich das irgendwie "verstecken" oder "verschlüsseln" ?

mfg
stormsam

Pingu
21-11-2004, 13:42
Zwei Punkte:

Ich würde nicht über eine Header-Anweisung auf eine neue Location verweisen sondern die Abfrage direkt im Script z.B. mittels file() oder fopen() mit eingeschaltetem HTTP-Wrapper machen.
Ist es bei einem solchen Script vollkommen egal ob jemand Dein PW weiß. Denn ich würde meine SMS einfach automatisch an Deinen Server senden, der das dann für mich schon richtig weiterleitet. Kurzum Ich könnte Dich auch ohne wissen des PW schädigen (nicht daß ich dies will - aber ich denke Du verstehst was ich meine).


Pingu

ExRevel
21-11-2004, 13:44
Hi...

Wenn du dein Passwort bei der Übergabe verschlüsselst, dann hast du das Problem das es für jeden User ersichtlich ist zwar gelöst, aber wahrscheinlich wird es der gateway server nicht mehr akzeptieren, vllt. solltest du dort mal anfragen ob der Anbieter des SMS Dienstes ein Verschlüssellungsverfahren anbietet...

Sonst, noch eine etwas andere Variante, bin mir nicht zu 100% sicher das es klappt, aber du könntest das PHP Script ja mit Rechten versehen das es keiner ansehen kann, logisch, dort steht ja das HEADER Statement drin. Das kannst du noch unkenntlich machen in dem du die URL vom Apache umschreiben lassen, per mod_rewrite Modul. Dazu musst du allerdings zugriff auf die Konfiguration des Apaches das Webserver haben.

Na, halt uns mal auf dem laufenden, interessiert mich mal.

@Pingu, da hast du nicht ganz unrecht, so richtig sicher bekommt man das auf dem wege natürlich auf keinen Fall.

ciao Exi

undefined
21-11-2004, 17:18
Ich würde es mit CURL machen ;)
Aber eine ganz Einfache und alt Bewährte Methode ist ein Frameset ;)
mfg undefined

ContainerDriver
21-11-2004, 17:37
Servus,
ich hätte auch eine Vorschlag: füge die Nachricht als erste GET-Variable ein, & fügst du noch eine GET-Variable hinzu (mit der der Server nichts anfangen kann), die du ziemlich lang machst: man sieht den Inhalt der eigentlichen GET-Variable nicht (führt aber zu Problemen, wenn jemd. "Zurück" beim Browser drückt).

Gruß, Florian

elrond
22-11-2004, 09:48
mein tipp wäre auch das gute alte frameset....

Gaert
22-11-2004, 11:05
Hallo,

ich würde mir mit den Socket Funktionen einen kleinen HTTP Client bauen und den Request damit direkt an den Server schicken... alternativ und einfacher gehts (wie Pingu bereits erwähnt hat) über fopen('http://server.com/skript.php?password=blabla');

Gruß,

Gaert

Stormsam
23-11-2004, 14:23
hi@all,

danke für die zahlreichen antworten.

Habe den Anbieter gefragt und er antwortete mir:

> Sie können z.B. via include eine config.inc.php anlegen und hier Variablen
> definieren, welche Sie dann ins Script implementieren.

...aja.. trotzdem sieht man dann doch das Passwort im Browser (beim header()).

Habe mir dann fopen angeschaut - und das ist doch genau das was ich suchte! ;)
Mit entsprechenden if-Funktionen ist das doch auch einigermassen sicher - zumindest der normale-User wird das nicht ausnutzen können.

Danke !

MfG
Stormsam

Gaert
23-11-2004, 19:34
hi@all,
Habe den Anbieter gefragt und er antwortete mir:

> Sie können z.B. via include eine config.inc.php anlegen und hier Variablen
> definieren, welche Sie dann ins Script implementieren.

Wow!

Respekt... der Support hats drauf!