Toon posts:

Java applet en MySQL ?

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik heb even de search gebruikt, en ik weet dat je via een applet een MySQL DB kunt aanspreken, maar..

Stel ik wil een spel maken waar 2 users tegen elkaar kunnen spelen, en dat allerhande zaken als topscore, speelduur e.d. worden bijgehouden.

Nou begreep ik dat een applet enkel toegang tot een MySQL DB kan krijgen als die op dezelfde machine wordt gehost. Betekent dit dat een applet alleen de MySQL database op m'n eigen PC zou kunnen benaderen, of ook de MySQL DB op site X-site.nl waarop de applet vandaan wordt gehaald ?

I'm confused...

  • KompjoeFriek
  • Registratie: Maart 2001
  • Laatst online: 02-01 05:18

KompjoeFriek

Statsidioot

Als jij in MySQL een user aankan maken die van buiten af mag connecten, en de benodigde poort(en?) open kunt zetten, moet het helemaal gaan lukken denk ik :)

WhatPulse! - Rosetta@Home - Docking@Home


Verwijderd

Om maar antwoord op je vraag te geven... Met een java applet mag je alleen een connectie maken met de host waar het applet vandaan gedownload is.

De MySQL server moet dus op de X-site.nl draaien waar ook de applet op gehost is. Nu hoeft dit niet perce dezelfde machine te zijn maar dat is een andere kwestie (port mapping naar intern netwerk enz)

  • Macros
  • Registratie: Februari 2000
  • Laatst online: 30-04 09:28

Macros

I'm watching...

Je kan een Java applet standaard nauwelijks iets laten doen, maar je kan wel een andere security policy meesturen waarbij de applet dan wel bijna alles mee kan. Files schrijve, connecties maken etc. Daarvoor moet je je applet signen met certificate. De gebruiker krijgt dan als hij je applet start een dialog waarin gevraagd wordt of hij jou certificate vertrouwt, doet ie dat dan start je applet op, anders draait hij waarschijnlijk in de default security omgeving en krijg je exceptions als je dingen doet die niet mogen.
Je kan zelf untrusted certificates maken. Staat allemaal op de Java site van Sun uitgelegd.

"Beauty is the ultimate defence against complexity." David Gelernter


  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 26-05 00:01

Janoz

Moderator Devschuur®

!litemod

Het lijkt me trouwens niet zo'n goed idee om het op deze manier aan te pakken. Nu moet de client (de speler op zijn computer thuis) verbinding gaan maken met je database. Verder heeft het account dat wordt gebruikt waarschijnlijk ook nog schrijf rechten. Het is heel makkelijk nu om het applet even te decompileren om alle connectie gegevens te achterhalen. Iedereen zou dan gewoon bij jouw database kunnen (en dingen kunnen aanpassen!).

Beter is het gebruik van een soort proxy. Je applets geeft bepaalde informatie door aan een serverside script (hetzij via een normaal http post of get request of door het openen van een socket. De eerste heeft de voorkeur omdat je dan geen last hebt van firewalls ed). Dit serverside script doet vervolgens alles met de DB.

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


  • Infinitive
  • Registratie: Maart 2001
  • Laatst online: 25-09-2023
Als je de MySQL server via JDBC wilt benaderen dan moet je op de gebruikersmachine toch de MyODBC drivers hebben. Het is niet erg aardig als je de gebruiker eerst verplicht om drivers te gaan downloaden en installeren.

putStr $ map (x -> chr $ round $ 21/2 * x^3 - 92 * x^2 + 503/2 * x - 105) [1..4]


  • nxt
  • Registratie: November 2001
  • Laatst online: 04-02 09:36

nxt

Infinitive schreef op 17 april 2004 @ 11:07:
Als je de MySQL server via JDBC wilt benaderen dan moet je op de gebruikersmachine toch de MyODBC drivers hebben. Het is niet erg aardig als je de gebruiker eerst verplicht om drivers te gaan downloaden en installeren.
dat hoeft niet,
die ODBC drivers is 1 optie,
maar je kunt ook de Connector/J JDBC drivers downloaden als je die meelevert met je applicatie/applet hoeft de gebruiker niets in te stellen / te installeren

[ Voor 5% gewijzigd door nxt op 17-04-2004 11:27 ]


  • Eskimootje
  • Registratie: Maart 2002
  • Laatst online: 23:28
Kun je die gegevens niet gewoon in een php file laten posten? Lijkt me iets veiliger en anders moet je misschien een serverside java app gaan draaien die het afhandelt maar dat komt een beetje op hetzelfde neer.
Pagina: 1