Andreas Korthaus: Probleme mit POST Header (multipart/form-data)

Beitrag lesen

Hi!

Genau, oder einfach vor dem Datenbankdump eine Zeile mit dem geheimen Wort.

Ja stimmt, das wird das beste sein. Hatte auch mit dem Gedanken gespielt dem Remoter-Server zunächst über SSH die eigene IP mitzuteilen, da ich nicht hinter nem Proxy hänge ist das schon recht sicher, wenn ich die dann nach Beendigung lösche. Anhand der IP könnte der Server dann ja die Anfrage validieren. Ein lanhges Kennwort könnte ich ja vielleicht auch als User-Agent String übertragen ;-) Mal schauen, ich denke ich weiß jetzt wie ich eine vernünftige Authentifizierung über SSL hinbekomme!

Sieht fast so aus als hätten die den Apache für localhost gesperrt, zumindest bekommem ich vom Server einen 403.

Hoe, mal ins Errorlog geschaut?

Kann ich leider nicht, ich habe nur Zugriff auf die 500er über ein spezielles Interface. Ich habe das Script mal auf den anderen Server übertragen und da ausgeführt(Zugriff auf 127.0.0.1:80), und ebenfalls 403. Dasselbe Script bei mir lokal auf 127.0.0.1:80(also nicht durch den Tunnel), funktioniert. Daher wird es da irgendeine Beschränkuing geben, warum auch immer, das werde ich direkt morgen früh erroieren! Also ein Tunnen zum Apache klappt schonmal nicht. Vielleicht muß ich mir tatsächlich einen eigenen "Socket-Server" basteln, da wäre ich auch nicht mehr auf http beschränkt! Ist nur fraglich ob man sowas darf, kann ja ne nette Sicherheitslücke sein ;-)

Bie der fsockopen-Geschichte bekomme ich "no SSL support in this build", obwohl oopenssl läuft, aber anscheinend ist man noch nicht so weit, zumindest bei Windows noch nicht!

Hast du es denn einkompiliert? Schau mal in der Ausgabe von phpinfo() nach, da sollte sowas eigentlich auftauchen.

Ich habe meinen Lebtag noch nichts kompiliert, und kompilieren müssen,  ich habe einfach die vorkompilierte Version von PHP verwendet, da muß ich lediglich die Extension in der php.ini freischalten und dafür sorgend das die entsprechende DLL verfügbar ist, was sohl der Fall ist da ich sonst einen Fehler bekäme, aber auch phpinfo() zeigt mir das openssl-Modul an.

Naja, ich muß aber glaube ich langsam mal schlafen ;-) Schläfst Du nie?

Doch, von meinem letzten Post bis vor etwa einer Stunde.

Aber dann bist Du zur Zeit wohl nicht in Europa, oder?

Sieht denn der Header bei SSL anders aus?

Eigentlich nicht. Zuerst kommt das SSL-Gezeugs (Austausch der Zertifikate, festlegen der Verschlüsselung und so) und dann in der Verschlüsselung ganz normales HTTP.

Naja, da bin ich ja beruhigt! Also den Rest müsste ja eigentlich PHP machen wenn ich das richtig verstanden habe. Vielleicht funktioniert php_curl ja in dieser Version, wäre ja immerhin auch noch eine Möglichkeit!

fsockopen ("https://www.server.de",443);

HTTP/1.1 400 Bad Request Date: Sun, 29 Sep 2002 08:32:02 GMT Server: Apache/df-exts 1....

Das riecht als würdest du SSL mit einem HTTP-Port sprechen. Jag mal deinen Sniffer drauf und schau im Errorlog nach.

0004  F9 94 E6 56 4E E5 50 18 7F FF C2 E1 00 00 50 4F    ù”æVNåP.ÿÂá..PO
0005  53 54 20 2F 73 6F 63 6B 74 65 73 74 2E 70 68 70    ST /socktest.php
0006  20 48 54 54 50 2F 31 2E 30 0D 0A 48 6F 73 74 3A     HTTP/1.0..Host:
0007  20 68 74 74 70 73 3A 2F 2F 77 77 77 2E 6B 6E 65     https://www.kne
0008  74 2D 73 79 73 74 65 6D 73 2E 64 65 0D 0A 43 6F    t-systems.de..Co
0009  6E 74 65 6E 74 2D 74 79 70 65 3A 20 6D 75 6C 74    ntent-type: mult
000A  69 70 61 72 74 2F 66 6F 72 6D 2D 64 61 74 61 3B    ipart/form-data;
000B  20 62 6F 75 6E 64 61 72 79 3D 62 6C 61 6B 0D 0A     boundary=blak..
000C  43 6F 6E 74 65 6E 74 2D 6C 65 6E 67 74 68 3A 20    Content-length:
000D  32 36 31 0D 0A 0D 0A 62 6C 61 6B 0D 0A 43 6F 6E    261....blak..Con
000E  74 65 6E 74 2D 44 69 73 70 6F 73 69 74 69 6F 6E    tent-Disposition
000F  3A 20 66 6F 72 6D 2D 64 61 74 61 3B 20 6E 61 6D    : form-data; nam
0010  65 3D 22 64 61 5F 6E 61 6D 65 22 3B 20 66 69 6C    e="da_name"; fil
0011  65 6E 61 6D 65 3D 22 64 61 5F 66 69 6C 65 6E 61    ename="da_filena
0012  6D 65 22 0D 0A 43 6F 6E 74 65 6E 74 2D 54 79 70    me"..Content-Typ
0013  65 3A 20 61 70 70 6C 69 63 61 74 69 6F 6E 2F 6F    e: application/o
0014  63 74 65 74 2D 73 74 72 65 61 6D 0D 0A 0D 0A 78    ctet-stream....x

Mag sein das ich blind bin, aber wo steht da der Port 443 den ich richtigerweise fsockopen() mitgegeben habe? 443 ist 100%ig der SSL-Port! IWe gesagt komme ich da leider nicht an die error-log. Porblem ist das die Error.log nicht nach Kunden getrennt werden kann.

Warning: fsockopen() [function.fsockopen]: no SSL support in this build in c:\www\test.php on line 39

Das hingegen riecht wieder als würdest du gar kein SSL in dem PHP haben. -> Frag phpinfo().

Ich habe nochmal news.txt gelesen, da steht definitiv:

  • PHP now has a new stream system that allows it to do some clever stuff with
      fopen() and fsockopen().  As a result:
      . URL wrappers natively supports https:// URLs
      . fsockopen() adds support for ssl:// and tls:// connections via TCP/IP

Wie gesagt, openssl-modul ist gegeben. Woher weiß ich was ich da falsch mache? Ich habe keine Ahnung wo ich da nach nem Fehler suchen soll, ist mir ein Rätsel! Vielleicht funkitoniert der Teil auch noch nicht unter windows, aber würde das dann in den news.txt meiner Version stehen? Wohl kaum!

Nicht ein Schritt klappt mal so auf Anhieb!

Naja, mein Vater sagt immer, dass etwas das auf Anhieb funktioniert höchst verdächtig ist. Da kann dann irgendwas nicht stimmen und es wird idR schnell kaputtgehen. :-)

Jajaja, Sprüche ;-) So langsam wie die letzten Tage bin ich noch nie vorwärts gekommen. War aber wenigstens lehrreich(vor allem dank Dir!)

Viele Grüße
Andreas