connectie tussen 2 servers

Pagina: 1
Acties:

Acties:
  • 0 Henk 'm!

  • robindv
  • Registratie: Juli 2009
  • Laatst online: 19-09 14:28
Voor een project, wil ik dat via domein A, de website van domein B wordt opgeroepen. Nu was mijn eerste ingeving. Om op website A neer te zetten:
PHP:
1
2
3
<?php
include('http://domeinB.nl/index.php?param1=value1&amp;param2=value2&amp....');
?>

Dit werkt ook wel, maar ik zit nu met 2 problemen.
De waarden van $_POST,$_SESSION,$_SERVER kan ik onmogelijk bij server B krijgen.

Is hier een oplossing voor, of moet ik op dat moment met socket gaan werken? Waar ik dus niets van snap, en geen goede nederlandse tutorial over kan vinden...

Acties:
  • 0 Henk 'm!

  • FragFrog
  • Registratie: September 2001
  • Laatst online: 18-09 17:57
Sockets niet per se, maar als je dit wilt zul je wel tegen iets als curl aanlopen. Een belangrijkere vraag is wellicht waarom je dat wilt, en of je niet simpeler de user gewoon kan redirecten / een iFrame gebruiken.

[ Site ] [ twitch ] [ jijbuis ]


Acties:
  • 0 Henk 'm!

  • [micro]
  • Registratie: Mei 2002
  • Laatst online: 20-08 14:12
Misschien kan je in de code van http://code.google.com/p/php5rp/ wat inspiratie vinden?

Acties:
  • 0 Henk 'm!

  • hostname
  • Registratie: April 2009
  • Laatst online: 17-09 17:56
Even buiten je vraag om:
Wat je nu feitelijk doet is de pagina op domeinB opvragen, de output daarvan (inclusief PHP code) uitvoeren en weergeven. Als je alleen wilt dat die pagina word aangeroepen, is echo file_get_contents() dan niet veel handiger en veiliger?

Acties:
  • 0 Henk 'm!

  • robindv
  • Registratie: Juli 2009
  • Laatst online: 19-09 14:28
Omdat ik website's voor mensen maak, wil ik op hun website enkel een koppeling zetten naar mijne. Zonder dat de bezoekers dit merken.(Wat wel met iframe het geval is). Het grote voordeel hiervan is dat ik alle site's in 1 keer kan updaten. En ik die mensen op 1 plek heb. Wat veel cms'en scheelt.

Kun je met curl ook sessies doorsturen?

Acties:
  • 0 Henk 'm!

  • ZpAz
  • Registratie: September 2005
  • Laatst online: 22:44
hostname schreef op vrijdag 17 juli 2009 @ 18:24:
Even buiten je vraag om:
Wat je nu feitelijk doet is de pagina op domeinB opvragen, de output daarvan (inclusief PHP code) uitvoeren en weergeven. Als je alleen wilt dat die pagina word aangeroepen, is echo file_get_contents() dan niet veel handiger en veiliger?
Een remote include wordt altijd geparsed, code op de remote server wordt niet geparsed op de aanvragende server.

Maar wil je gewoon dat domeinx altijd domeiny laat zien? Dan lijkt het me beter dat je met de DNS instellingen, en hosts-file gaat spelen.

Tweakers Time Machine Browser Extension | Chrome : Firefox


Acties:
  • 0 Henk 'm!

  • MuisM4t
  • Registratie: Mei 2007
  • Niet online
ZpAz schreef op vrijdag 17 juli 2009 @ 18:27:
[...]


Een remote include wordt altijd geparsed, code op de remote server wordt niet geparsed op de aanvragende server.

Maar wil je gewoon dat domeinx altijd domeiny laat zien? Dan lijkt het me beter dat je met de DNS instellingen, en hosts-file gaat spelen.
Dit gaat natuurlijk alleen op als je de websites van je klanten zelf host (op dezelfde host).

Acties:
  • 0 Henk 'm!

  • robindv
  • Registratie: Juli 2009
  • Laatst online: 19-09 14:28
het gaat niet om alles in domeinx, en toegang tot dns is er niet altijd.

En het gaat me erom dat de gebruiker niet door heeft dat hij op een andere website zit, en ook niet kan komen op de website van domeiny. Door bijvoorbeeld een key in een get-request te stoppen.

Acties:
  • 0 Henk 'm!

  • DukeBox
  • Registratie: April 2000
  • Laatst online: 20:20

DukeBox

loves wheat smoothies

Anders zet je toch gewoon een replicatie model op tussen die verschillende sites ?

Duct tape can't fix stupid, but it can muffle the sound.


Acties:
  • 0 Henk 'm!

  • krvabo
  • Registratie: Januari 2003
  • Laatst online: 22:02

krvabo

MATERIALISE!

robindv schreef op vrijdag 17 juli 2009 @ 18:26:

Kun je met curl ook sessies doorsturen?
Je kan alles doorsturen, zolang je onder de 1024 (iirc) tekens in de url blijft. Veilig is het niet. Alles wat je verstuurd (en wellicht encode met base64 of andere encryptie) is te achterhalen.
Mocht je alleen puur een identifier oversturen is het nog ergens te overwegen, maar ook dit blijft gewoon een groot veiligheidsrisico.

Je moet het zo zien: alles wat je verstuurd kan onderschept en aangepast worden. Tenzij je hier een dijk aan veiligheidsmaatregelen tegenaan gooit (en dit ook KAN!) moet je het simpelweg niet gebruiken voor belangrijke dingen. Als je niet uitkijkt kan iemand complete controle overnemen op je server door malicious code in je doorgestuurde var te stoppen.

Pong is probably the best designed shooter in the world.
It's the only one that is made so that if you camp, you die.


Acties:
  • 0 Henk 'm!

  • robindv
  • Registratie: Juli 2009
  • Laatst online: 19-09 14:28
ik wil juist dubbele bestanden voorkomen.
Is het mogelijk om een verbinding (dmv socket) te maken tussen de client_server en website_server. Vervolgens netjes alle superglobals van client_server naar website_server over te zenden. En een html-output terug te krijgen. Volgens mij is dit niet zo super ingewikkeld. Maar hoe? En is dit mogelijk?

Acties:
  • 0 Henk 'm!

  • PolarBear
  • Registratie: Februari 2001
  • Niet online
krvabo schreef op vrijdag 17 juli 2009 @ 19:55:
[...]

Je kan alles doorsturen, zolang je onder de 1024 (iirc) tekens in de url blijft. Veilig is het niet. Alles wat je verstuurd (en wellicht encode met base64 of andere encryptie) is te achterhalen.
Base64 is tegenwoordig een encryptie technologie :?

Acties:
  • 0 Henk 'm!

  • krvabo
  • Registratie: Januari 2003
  • Laatst online: 22:02

krvabo

MATERIALISE!

PolarBear schreef op vrijdag 17 juli 2009 @ 20:08:
[...]


Base64 is tegenwoordig een encryptie technologie :?
The term Base64 refers to a specific MIME content transfer encoding. It is also used as a generic term for any similar encoding scheme that encodes binary data by treating it numerically and translating it into a base 64 representation.
Heel basis: ja.

Pong is probably the best designed shooter in the world.
It's the only one that is made so that if you camp, you die.


Acties:
  • 0 Henk 'm!

  • robindv
  • Registratie: Juli 2009
  • Laatst online: 19-09 14:28
Maar socket is toch een verbinding via servers onderling, en daarop is geen beperking (van grootte van overdracht) mag ik hopen?

Acties:
  • 0 Henk 'm!

  • Jaap-Jan
  • Registratie: Februari 2001
  • Laatst online: 19:49
http://www.di-mgt.com.au/encode_encrypt.html ;)
robindv schreef op vrijdag 17 juli 2009 @ 20:13:
Maar socket is toch een verbinding via servers onderling, en daarop is geen beperking (van grootte van overdracht) mag ik hopen?
Klopt, maar dat wil trouwens niet zeggen dat het een aanrader is. Je zult dan zelf een protocol moeten ontwikkelen. Misschien kun je op domein A de webserver configureren, zodat hij werkt als proxy voor domein B. :)

[ Voor 57% gewijzigd door Jaap-Jan op 17-07-2009 20:25 ]

| Last.fm | "Mr Bent liked counting. You could trust numbers, except perhaps for pi, but he was working on that in his spare time and it was bound to give in sooner or later." -Terry Pratchett


Acties:
  • 0 Henk 'm!

  • robindv
  • Registratie: Juli 2009
  • Laatst online: 19-09 14:28
robindv schreef op vrijdag 17 juli 2009 @ 19:55:
ik wil juist dubbele bestanden voorkomen.
Is het mogelijk om een verbinding (dmv socket) te maken tussen de client_server en website_server. Vervolgens netjes alle superglobals van client_server naar website_server over te zenden. En een html-output terug te krijgen. Volgens mij is dit niet zo super ingewikkeld. Maar hoe? En is dit mogelijk?
en is dit mogelijk? En hoe moet ik het voor elkaar krijgen?

Acties:
  • 0 Henk 'm!

  • hostname
  • Registratie: April 2009
  • Laatst online: 17-09 17:56
ZpAz schreef op vrijdag 17 juli 2009 @ 18:27:
[...]


Een remote include wordt altijd geparsed, code op de remote server wordt niet geparsed op de aanvragende server.
Klopt, maar de code die de remote server output word ook lokaal geparset, wat ik niet zou aandurven (zeker niet als je de andere server niet van jou is).

Acties:
  • 0 Henk 'm!

  • robindv
  • Registratie: Juli 2009
  • Laatst online: 19-09 14:28
de remote server is van mij, en de server waarmee de gebruiker in contact staat is van de 'klant'. Deze stuurt wat gegevens over de user en inputs door, waar de remote/webserver dan weer een php-pagina van maakt. En deze terug stuurt naar de clientserver. Die de output doorstuurt naar de klant.

Acties:
  • 0 Henk 'm!

  • Trucker Her
  • Registratie: Juni 2009
  • Niet online

Trucker Her

Someone ate my cookie :(

Allicht kun je Rsnyc gebruiken en eens per dag, ofzo. Data ophalen: http://rsync.samba.org/

Gestoord word je toch...


Acties:
  • 0 Henk 'm!

  • FragFrog
  • Registratie: September 2001
  • Laatst online: 18-09 17:57
robindv schreef op vrijdag 17 juli 2009 @ 19:55:
ik wil juist dubbele bestanden voorkomen.
Als dit je voornaamste reden is blijf ik erbij dat het niet ideaal is op de huidige manier te werken. Je verstuurt een aanzienlijke hoeveelheid data nodeloos tussen de twee servers door. Met iets simpels als SVN kun je ook heel eenvoudig gedeelde code in een keer updaten - als je dat voor heel veel sites doet kun je dat eenvoudig automatiseren door bijvoorbeeld een cronjob op de client in te stellen of een speciale admin page te maken die je aanroept vanaf je host. Dit is simpeler dan een perfecte proxy schrijven (davSVN heb je zo geinstalleerd), sneller voor de bezoeker, kost je minder dataverkeer, is schaalbaarder en veroorzaakt minder belasting op je main webserver.
Is het mogelijk om een verbinding (dmv socket) te maken tussen de client_server en website_server. Vervolgens netjes alle superglobals van client_server naar website_server over te zenden. En een html-output terug te krijgen. Volgens mij is dit niet zo super ingewikkeld. Maar hoe? En is dit mogelijk?
Dit kan ook gewoon met cURL, zie ook de andere posts hierover. Security is daarbij helemaal geen issue: je vertrouwt de data aan de server kant namelijk toch al niet (want het komt indirect van een client), en het maakt geen fluit uit of ze nu tussen je servers of tussen de server en je client een MitM attack uitvoeren.

Als je toch per se met sockets wilt werken kun je een eenvoudige socketserver opzetten (maar doe dat vooral niet in PHP, zie ook mijn entry & voorbeeldcode hier), een basic protocol definieren en je pagina openen met bijvoorbeeld output buffering aan om de HTML weer ergens op te slaan en terug te sturen. Bedenk je echter dat je daarbij nog een omweg zit te maken en je toch al je main server nodeloos zwaar zit te belasten zodat ik dit heel erg afraad:
code:
1
Client -> [socket] -> SocketServer -> [lokale pipe] -> Webserver -> [file / db store?] -> SocketServer -> [socket] -> Client

[ Site ] [ twitch ] [ jijbuis ]

Pagina: 1