Check alle échte Black Friday-deals Ook zo moe van nepaanbiedingen? Wij laten alleen échte deals zien

[Javascript/AJAX] Variabelen onzichtbaar versturen

Pagina: 1
Acties:

  • JoostMartijn
  • Registratie: December 2003
  • Laatst online: 17-04 15:22
Beste Mede Tweakers,

Als ik het mag zeggen ben ik best goed met Php, Javascript en Ajax. Nu heb ik een formulier met daarin een 10 tal variabelen. Deze variabelen haal ik op via een AJAX / Javascript script. Nu wil ik deze naar een externe website sturen zonder dat iemand kan zien wat de variabelen zijn of ze kan beinvloeden.

Wat ik dus wil is:

de variabelen verzenden zonder dat iemand ze kan zien
dat de variabelen onmogelijk te veranderen zijn.
Dat de gegevens verzonden worden naar de andere website verstuurd worden zonder dat iemand het idee heeft dat de website 'verlaten' wordt.

Een mogelijke oplossing waarmee ik nu zelf aan het spelen ben is: Een link in een hidden iframe laden en deze dan weer te laten sluiten. Maar ben eigenlijk opzoek naar een betere en nettere oplossing.

Ik hoop dat iemand nog net iets beter is dan ik :P

Windsoft


  • Grijze Vos
  • Registratie: December 2002
  • Laatst online: 28-02 22:17
1.) Een gebruiker kan altijd een sniffer aan hebben staan en het wel zien.
2.) Je moet clientside code gebruiken (bijv. JS), en die is altijd zichtbaar, hetzij evt. obfuscated.

Wat je wilt kan dus in principe niet.

Op zoek naar een nieuwe collega, .NET webdev, voornamelijk productontwikkeling. DM voor meer info


  • Voutloos
  • Registratie: Januari 2002
  • Niet online
Introduceer een extra variabele welke een hash van de andere vars is, en check op de externe site of de gezonden variabelen wel die hash opleveren. Uiteraard moet je er voor zorgen dat de manier van hashen geheim is en dat je het op zo'n manier doet dat er geen replay-attack mogelijk is.

Of gebruik een encryptiemethode en zorg dat alleen jouw server en de externe site de sleutel(s) weten, of laat de exteren site contact op nemen met de ander om de variabelen te valideren, etc. etc.

[ Voor 25% gewijzigd door Voutloos op 22-08-2007 08:27 ]

{signature}


  • Mastermind
  • Registratie: Februari 2000
  • Laatst online: 29-11 15:35
Inderdaad, PGP. Encrtypted versturen met een sleutel die alleen de andere partij weet. Kijk hier maar eens:
http://www.hanewin.net/encrypt/

  • Janoz
  • Registratie: Oktober 2000
  • Nu online

Janoz

Moderator Devschuur®

!litemod

Als je het via de client laat lopen kun je nooit je eisen garanderen. Je kunt het beste een rechtstreekse verbinding tussen jouw server en de andere website opzetten. Op dat moment heb je de untrusted tussenstap van de gebruiker er tussenuit.

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'


  • WouZz
  • Registratie: Mei 2000
  • Niet online

WouZz

Elvis is alive!

Je kan de gegevens vanaf je eigen webserver direct naar een andere server versturen met curl.

On track


  • 4of9
  • Registratie: Maart 2000
  • Laatst online: 13-12-2024
een http post doen mbv ajax. En de variabelen encrypten oid.

Aspirant Got Pappa Lid | De toekomst is niet meer wat het geweest is...


  • crisp
  • Registratie: Februari 2000
  • Nu online

crisp

Devver

Pixelated

4of9 schreef op woensdag 22 augustus 2007 @ 11:19:
een http post doen mbv ajax. En de variabelen encrypten oid.
Ajax (XMLHttpRequest) is vooralsnog niet cross-domain

[ Voor 3% gewijzigd door crisp op 22-08-2007 11:23 ]

Intentionally left blank


  • PeterSelie
  • Registratie: December 2002
  • Laatst online: 24-11 13:14
het is geen mogelijkheid tijdelijk verbinding te maken met een andere MySQL server/db en dan de gegevens op die manier over te brengen?

  • Cartman!
  • Registratie: April 2000
  • Niet online
Je kunt toch een AJAX request doen naar je eigen server en dan serverside een request doen naar de externe partij (danwel encrypted met PGP of OpenSSL) en dan het result terugparsen naar je eigen pagina.

  • ? ?
  • Registratie: Mei 2007
  • Niet online

? ?

Clientside: onmogelijk, als het op mijn computer gebeurt, dan kan ik er mee doen wat ik wil, al helemaal als het via een leesbaar script is.
Daarbij kan ik altijd een networksniffer gebruiken om te kijken wat er allemaal verstuurd wordt en ik kan dat perfect nabootsen en je database corrupten met fake data. Encryptie haalt niets uit, ik kijk gewoon wat je in je javascript allemaal doet..
Client-scripting & input = de client kan er alles mee doen, daarom moet je dus altijd alle input op serverside (dubbel)checken.

Over wat voor 'variabelen' gaat het exact en van waar haal je die?

  • JoostMartijn
  • Registratie: December 2003
  • Laatst online: 17-04 15:22
Heeft een van jullie een voorbeeld van zo'n http post. Dus hoe ik de variabelen verzend zonder een ander venster te openen.

Windsoft


  • Creepy
  • Registratie: Juni 2001
  • Laatst online: 30-11 15:10

Creepy

Tactical Espionage Splatterer

JoostMartijn schreef op woensdag 22 augustus 2007 @ 16:51:
Heeft een van jullie een voorbeeld van zo'n http post. Dus hoe ik de variabelen verzend zonder een ander venster te openen.
Zo werkt het hier niet he. Dit is gewoon een scriptrequest. Het is hier geen afhaalbalie voor code. Zie ook Programming Beleid - Scriptrequests.

"I had a problem, I solved it with regular expressions. Now I have two problems". That's shows a lack of appreciation for regular expressions: "I know have _star_ problems" --Kevlin Henney


  • JoostMartijn
  • Registratie: December 2003
  • Laatst online: 17-04 15:22
sorry... Ik weet hoe het hier werkt. Vind ik ook een goede zaak.

Maar ik heb momenteel geen enkel idee waar ik naar moet kijken. Heb je een functie. Of iets waar ik naar kan zoeken?

Windsoft


  • P.O. Box
  • Registratie: Augustus 2005
  • Niet online
Geef hier eens een reactie op:
era.zer schreef op woensdag 22 augustus 2007 @ 12:34:
Over wat voor 'variabelen' gaat het exact en van waar haal je die?

  • Creepy
  • Registratie: Juni 2001
  • Laatst online: 30-11 15:10

Creepy

Tactical Espionage Splatterer

JoostMartijn schreef op woensdag 22 augustus 2007 @ 17:00:
sorry... Ik weet hoe het hier werkt. Vind ik ook een goede zaak.

Maar ik heb momenteel geen enkel idee waar ik naar moet kijken. Heb je een functie. Of iets waar ik naar kan zoeken?
http://www.google.com/sea...8&startIndex=&startPage=1. Maar je hebt door dat je Ajax request ook al een GET of POST request is?

[ Voor 8% gewijzigd door Creepy op 22-08-2007 17:08 ]

"I had a problem, I solved it with regular expressions. Now I have two problems". That's shows a lack of appreciation for regular expressions: "I know have _star_ problems" --Kevlin Henney


  • JoostMartijn
  • Registratie: December 2003
  • Laatst online: 17-04 15:22
Okee, ik ga het proberen met een AJAX request. Wist nog niet dat hiervoor ook gebruikt kon worden

code:
1
2
3
xmlhttp.onreadystatechange=state_Change
  xmlhttp.open("GET",url,true)
  xmlhttp.send(null)


In de URL Zet ik dan mijn gegevens:

code:
1
voorbeeld.php?var1=test&var2=raar


Zou zo de oplossing moeten zijn? Er rekening mee houden dat ik het xmlhttp object goed aanmaak

Windsoft


  • Creepy
  • Registratie: Juni 2001
  • Laatst online: 30-11 15:10

Creepy

Tactical Espionage Splatterer

Nope want je doet nu nog steeds alles clientside en dat is altijd manipuleerbaar. Waarom haal je eerst de waardes op vanaf de server naar de client om ze vervolgens te willen doorsturen naar een andere server? Waarom stuur je niet direct vaanf je server de waardes door naar de andere server?

"I had a problem, I solved it with regular expressions. Now I have two problems". That's shows a lack of appreciation for regular expressions: "I know have _star_ problems" --Kevlin Henney


  • FragFrog
  • Registratie: September 2001
  • Laatst online: 11:52
JoostMartijn schreef op woensdag 22 augustus 2007 @ 02:52:
Als ik het mag zeggen ben ik best goed met Php, Javascript en Ajax.
En dan
JoostMartijn schreef op woensdag 22 augustus 2007 @ 16:51:
Heeft een van jullie een voorbeeld van zo'n http post. Dus hoe ik de variabelen verzend zonder een ander venster te openen.
AJAX is al niets anders dan een POST (of GET) request zonder een ander venster te openen. Ik zou je willen aanraden in het vervolg niet je post te beginnen met 'ik ben best goed' als je dit soort elementaire zaken niet eens lijkt te beheersen.

Verder is je probleem simpel genoeg op te lossen, zoals gezegd verstuur je de gegevens eerst met een XML request naar je eigen server waarna je met behulp van curl en curl_setopt() POST gegevens naar de andere server kan versturen. Eventueel kun je daarna met een ander request gegevens weer terugsturen naar de client zodat je in feite je server als proxy laat werken.

Als je zelf ook de andere server beheert is het trouwens een stuk simpeler om de eerste server een load request pagina te laten openen en de gegevens uit een shared database te halen, de curl functies zijn niet de meest simpele van PHP helaas :)

[ Site ] [ twitch ] [ jijbuis ]


  • 4of9
  • Registratie: Maart 2000
  • Laatst online: 13-12-2024
crisp schreef op woensdag 22 augustus 2007 @ 11:23:
[...]

Ajax (XMLHttpRequest) is vooralsnog niet cross-domain
oeps... niet aan gedacht :o

Aspirant Got Pappa Lid | De toekomst is niet meer wat het geweest is...


  • Grijze Vos
  • Registratie: December 2002
  • Laatst online: 28-02 22:17
crisp schreef op woensdag 22 augustus 2007 @ 11:23:
[...]

Ajax (XMLHttpRequest) is vooralsnog niet cross-domain
En hopelijk gebeurt dat ook nooit.

* Grijze Vos voorziet nog meer enge XSS flaws

[ Voor 12% gewijzigd door Grijze Vos op 23-08-2007 09:58 ]

Op zoek naar een nieuwe collega, .NET webdev, voornamelijk productontwikkeling. DM voor meer info


  • crisp
  • Registratie: Februari 2000
  • Nu online

crisp

Devver

Pixelated

Grijze Vos schreef op donderdag 23 augustus 2007 @ 09:57:
[...]

En hopelijk gebeurt dat ook nooit.

* Grijze Vos voorziet nog meer enge XSS flaws
Daar wordt toch wel degelijk over nagedacht: http://wiki.mozilla.org/Cross_Site_XMLHttpRequest

Intentionally left blank


  • Grijze Vos
  • Registratie: December 2002
  • Laatst online: 28-02 22:17
Lees ik dit nou goed:
To solve this problem it is suggested that the accessed server can signal back to the browser that it is ok for other sites to access certain pages on the server. Firefox checks for this and only returns the response to the page if the server explicitly allows it. Otherwise the browser will throw away the response from the server and throw an exception.
Willen ze de verantwoordelijkheid bij de browser leggen?

Op zoek naar een nieuwe collega, .NET webdev, voornamelijk productontwikkeling. DM voor meer info


  • crisp
  • Registratie: Februari 2000
  • Nu online

crisp

Devver

Pixelated

Grijze Vos schreef op donderdag 23 augustus 2007 @ 10:35:
[...]

Lees ik dit nou goed:


[...]

Willen ze de verantwoordelijkheid bij de browser leggen?
Ja, sandboxing is toch ook de verantwoordelijkheid van de browser?

Intentionally left blank

Pagina: 1