Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: PHP : Java appletin piilottaminen selaimen lähdekoodista ?

Sivun loppuun

kpzpt [11.04.2011 18:57:22]

#

Hei!

Minulla on java applet .jar fileessä.

Olisi mukava jos joku osaisi neuvoa kuinka voin piilottaa tämän .jar fileen, niin, että sitä ei voi ladata palvelimestani, ymmärtääkseni http://java4k.com käyttää tälläistä tallenne tapaa ?

Heillä on esim.

<applet code="T.class" archive="applet.php?gid=318" width="720" height="400"

Mitähän tuo applet.php koodi voisi sisältää, en tunne php kieltä tarpeeksi jotta osaan rakentaa vastaavaa, lisänä ihmettelen että "applet.php?gid=318" itsessäänsä ei aiheuta virheilmoitusta <applet> tagissa ?

Ajattelin tallentaa .jar fileet ihan palvelimen coreen, eli jonnekkin "/home/minäkäyttäjä/appletjar/" hakemistoon ?

---

Grez [11.04.2011 19:02:38]

#

Mitään sellaista tapaa ei ole, millä voisit estää appletin lataamisen palvelimeltasi, mutta sitä voisi kuitenkin käyttää. (Ellet sitten toimita sitä applettia vaikka CD:llä käyttäjille)

Jos haluat estää appletin hotlinkkaamisen muilta sivuilta, niin silloin kannattaa laittaa tuolla tyylillä kun sinulla onkin, mutta joku melko pitkä jokaiselle käyttäjälle erikseen arvottava numero, joka on voimassa vaikka tunnin.

lainaus:

ihmettelen että "applet.php?gid=318" itsessäänsä ei aiheuta virheilmoitusta <applet> tagissa ?

No miten se voisi aiheuttaa virheilmoituksen? Archive parametri on URL ja tuo on ihan validi url.

Tuossa 4K:n toteutuksessa ei selvästikään ole tavoitteena estää applettien lataamista heidän palvelimeltaan, vaan todennäköisesti kyseessä on vaan "julkaisujärjestelmän" tarpeesta lähtevä numerointi. Olisikin outoa jos olisivat yrittäneet estää lataamisen jotenkin, koska todennäköisesti tietävät ettei se ole mahdollista.

Ja sitten vielä että otsikostasi huolimatta asialla ei ole mitään tekemistä selaimen lähdekoodin kanssa.

Metabolix [11.04.2011 19:05:32]

#

Et voi estää JAR-tiedoston lataamista. Jos estät sen, käyttäjä ei voi pelata pelejäsi. Enintään voit vaatia käyttäjää ensin kirjautumaan ja antaa tiedoston ladattavaksi vain kirjautuneille käyttäjille, mutta tästä ei ole mitään apua, koska ilmaiseen palveluun voi kirjautua kuka tahansa ja muussakin tapauksessa riittää, että yksi henkilö käy lataamassa tiedoston ja levittää sitä sitten muille.

Yritä ensin keksiä jokin järkevä syy, miksi tiedoston lataaminen edes pitäisi estää. Onko estämisestä jotain hyötyä? Tai onko lataamisesta jotain haittaa?

kpzpt [11.04.2011 19:52:49]

#

Hmmh!

Voisinko vastaanottaa jonkinlaisen esimerkin mitä tuo applet.php voisi sisältää, en valitettavasti itse tunne php kieltä kovinkaan tarkoin, siellä täytyy olla siis jonkinlainen file url palautus rutiini ?

Edit.
Ajattelin vain että olisi mahdollista hieman estää esim. wget avulla tapahtuvaa .jar lataamista, mutta, joo, olette oikeassa, taitaa olla aika vaikeata taikka ellei mahdotonta estää tuota wget ja osoitepalkin avulla tapahtuvaa .jar lataamista.

---

Metabolix [11.04.2011 20:19:20]

#

(Edit: kpzpt muokkasi edellistä viestiään, joten vastaukseni menee osin ohi.)

Mainitsemasi java4k-sivusto ei ole mitenkään estänyt lataamista, vaan tiedoston saa aivan suoraan kopioimalla tuon applet-tagissa olevan osoitteen. Suoraan sanoen on ihan oma häpeäsi, jos et osaa edes kirjoittaa sitä oikein osoiteriville. Mainitsemasi peli numero 318 täytyy lisäksi purkaa ohjelmalla unpack200, joka ainakin minulle on asentunut JDK:n mukana.

Myös linkitys omalta sivulta kyseiseen peliin toimii aivan hyvin:

<applet archive="http://www.java4k.com/applet.php?gid=318" code="T.class" width="640" height="480"></applet>

Palvelin ei voi mistään oikeasti tietää, millä ohjelmalla tiedostoa ladataan. Lataamista ei voi estää kuin vaatimalla käyttäjältä kirjautumisen.

Tiedoston voi palvelimelta lähettää PHP:llä esimerkiksi näin:

<?php
header("Content-Type: application/java-archive");
readfile("tiedosto.jar");
die();

Tässä ei ole kuitenkaan mitään järkeä, koska se on edelleen täsmälleen sama tiedosto. Tuhlaat vain resursseja, kun yksinkertaisen latauksen sijaan käytetään vielä PHP:täkin.

Yucca [11.04.2011 21:08:03]

#

Eikös aika yleispätevä sääntö ole öjos haluat piilottaa koodisi, siinä ei ole mitään arvoista, että kukaan haluaisi sitä kopioidaö?

punppis [11.04.2011 21:09:50]

#

Yucca kirjoitti:

Eikös aika yleispätevä sääntö ole öjos haluat piilottaa koodisi, siinä ei ole mitään arvoista, että kukaan haluaisi sitä kopioidaö?

Mitä?

Grez [11.04.2011 21:15:25]

#

punppis kirjoitti:

Mitä?

Näyttäisi yksi sen sana puuttuvan. Eli: Eikös aika yleispätevä sääntö ole öjos haluat piilottaa koodisi, siinä ei ole mitään sen arvoista, että kukaan haluaisi sitä kopioidaö?

Onko nyt riittävän selkeä?

kpzpt [13.04.2011 07:22:57]

#

applet.php!

@Metabolix:
Minä mietin että josko jotenkin hieman hankaloittaisin tuota .jar fileen noutoa palvelimeltani.

Kuinka olisi parasta toimia, mietin itse että tuolla php koodilla laittaisin avaimen joka olisi voimassa yhden latauksen ajan ja max. 30 sekunttia, eli avain vaikka laitettaisiin mysql databaseen, etusivulla jolla appletti käynnistetään, ja sitten kun applet sivu on ladattu, niin postin avulla otetaan tuo avain ja verrataan databaseen, ja lisäksi jos tuolla applet.php koodilla sitten lataisi tuon .jar fileen, niin, palvelimen ytimestä, eli jostain "/home/username/javakansio/" tuonnehan ei selaimilla ja wgeteillä ole asiaa ?

onko taas turhaa ? en ole tietokone ammattilainen saattaa olla että en ihan ymmärrä kokonaisuutta jota ihmettelen, eli mahdollisuutta suojella java koodiaan, java koodit taitaa olla tarkoitettu aika yleiseksi.

---

The Alchemist [13.04.2011 07:26:31]

#

Onko turhaa? No on. Et ole perustellut lainkaan sitä, miksi sinun kannattaisi edes harkita tuollaista turhaa säätämistä suoran linkkaamisen sijaan.

Metabolix [13.04.2011 13:36:33]

#

Toistan vielä kolmannen kerran (ynnä muiden mainitsemat kerrat): koodin lataamista ei voi estää tai edes olennaisesti vaikeuttaa. Jos tämä tuntuu vaikealta käsittää, voit ehkä soveltaa perinteistä jälki-istuntomenettelyä ja kirjoittaa 100 kertaa liitutaululle lauseen "lataamista ei voi estää". Ehkä sitten muistat etkä kysy enää.

Vaikka käyttäisit mitä kirjautumisia ja istuntoavaimia, voisin aivan vaivatta käydä vaikka sillä wgetillä kirjautumassa ja lataamassa applet.php:n niin, ettei proseduuria voisi mitenkään erottaa tavallisesta käynnistä.

Jos on ihan pakko, voit obfuskoida eli sekoittaa koodin niin, että siitä ei saa selvää, mutta rehellisesti sanottuna se ei ole sinun koodisi kohdalla edes tarpeen.

Edelleenkin: Miksi koodi pitäisi "suojata"? Mitä haittaa, vaikka joku lukisi koodisi? Jos et pysty perustelemaan päätöstäsi, kannattaa saman tien unohtaa koko juttu. Tiedät kai, että maailmassa on paljon menestyviä vapaan lähdekoodin ohjelmistoja, joiden kohdalla on nähty, että lähdekoodin julkisuudesta on usein huomattavaa hyötyäkin, kun bugit ja puutteet tulevat ilmi ja joku voi jopa korjata ne.


Sivun alkuun

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta