Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: Koodi ei "muista" muuttujia

Sivun loppuun

TETRIS [23.05.2004 12:42:14]

#

Minulla on sellainen ongelma, että koodini ei "muista" muuttujia. Eli koodi en seuraavanlainen :

index.php

<?php include('imurointi_key.php'); ?>
<a href="imuroi.php?id=0&?key=<?php echo $jh_dl_key; ?>">Imuroi filu</a> (~ 900kt)

<input type="hidden" name="key" value="<?php echo $jh_dl_key; ?>">
<input type="hidden" name="jh_dl_key" value="<?php echo $jh_dl_key; ?>">

imurointi_key.php

<?php
// generoidaan uniikki imurointi avain
list($usec, $sec) = explode(" ",microtime());
$jh_dl_key = ($sec . substr($usec, 2, 3));
?>

imuroi.php

<?php

// Varmistetaan muuttujat
$jh_dl_key = $_GET['jh_dl_key'];
$key = $_GET['key'];

// Ladataan tiedosto
$id_filu = file("iideet.txt");

// Jos key on oikea ohjataaan selain imuroitavaan filuun
if($key > "" and $jh_dl_key > "" and $key == $jh_dl_key and $jh_dl_key == $key){

$ohjaa_filu = $id_filu[$id];
header ("Location: ". $ohjaa_filu);

}else{
// Muutoin muualle
$ohjaa_dl = "http://www.osoite.net/index.php?sivu=dl_failure";
header ("Location: ". $ohjaa_dl);
}
?>

ongelmana on siis, että muuttujat key ja jh_dl_key eivät pysy vaikka kuinka yrittäisi.

Olga [23.05.2004 12:52:09]

#

Sä et voi käyttää noita input-kenttiä ilman formia, ja niillä ei muutenkaan tee mitään ku annat noi muuttujat parametrina. Lisäksi tuossa linkin perässä olevassa querystringissä on yks kysymysmerkki liikaa.

<?php include('imurointi_key.php'); ?>
<a href="imuroi.php?id=0&key=<?php echo $jh_dl_key;?>">Imuroi filu</a> (~ 900kt)

Ja nyt siis tuo key-muuttuja siirtyy osoiterivillä imuroi.php-tiedostolle.

edit: tuo on aika mielenkiintoinen tuo sun tarkistuslitania tuolla imuroi.php - tiedostossa :)
edit2: niin, siis selvennyksenä vielä että nythän tuo muuttuja jh_dl_key ei oo tuossa parametrina, mutta eihän sitä tarvikaan kun se on tuossa sun koodissa sama kun toi key.
edit3: ajv omaksunut nopsasti foorumin uudet tagit :) (kts. seuraava viesti --->)

ajv [23.05.2004 12:55:13]

#

Heeeetkonen! Nyt taitaa olla hieman getit ja postit sekasin...

  1. <a href="imuroi.php?id=0&?key=<?php echo $jh_dl_key; ?>">Imuroi filu</a>
    Kysymysmerkki pois tuolta &-merkin jälkeen, eli oikea muoto on:
    <a href="imuroi.php?id=0&key=<?php echo $jh_dl_key; ?>">Imuroi filu</a>
  2. Käytät piilokenttiä, vaikka formista ei ole tietoakaan, saatikka sitten formin lähettäjästä eteenpäin.

Edit: Vain nopsat elävät!
Edit2: Hienosti toimii nää uudet sydeemit!
Edit3: Paitsi hieman levittää sivua, kun on noi kooditagit vielä tuolla [lin]:in sisällä

TETRIS [23.05.2004 13:36:50]

#

Nyt tuli spedettyä pahemman kerran :P .... niin olisiko mahdollista saada tuo jh_dl_key muuttuja tulemaan imuroi.php:hen ilman, että se näkyy osoitteessa... ja ilman, että sitä tallennetaan cookieen, sessioon tai filuun.

Olga [23.05.2004 13:43:51]

#

Käytät lomaketta, hidden-kenttää ja post-metodia. Silloinkin se tosin näkyy lähdekoodissa. Miksei esimerkiksi sessiot kelpaa?

T.M. [23.05.2004 13:45:27]

#

Miksei se saisi näkyä osoiterivillä?
Muuta se osoitteeseen menevä tieto muotoon joka on turvallinen. Jos sen takia sitä ei saa näkyä?

TETRIS [23.05.2004 13:52:03]

#

Sessiot eivät kelpaa koska ne eivät välttämättä toimi kaikilla (ilman säätämistä). Muuttuja ei saisi näkyä koska :

Koodin idea on toimia suoralinkki estona... (en kyllä tiedä miten tämä mahtaa toimia jos saan tämän edes toimimaan) eli siis jos joku copypastetaa linkin sivuilleen ja yrittää mennä linkkiin imuroiminen ei onnistu koska key muuttuja ei ole sama kuin jh_dl_key... joten jos jh_dl_key muuttuja olisi näkyvillä systeemi ei toimisi, koska muuttujan voisi helposti säätää niin, että esto ei toimi :(

Olga [23.05.2004 14:01:21]

#

http://www.pikseli.biz/blog/archive/2003/10/21/htaccess_haltuun/index.php?s=7 ja sieltä alhaalta se hot linking.

ajv [23.05.2004 14:02:04]

#

No, vaikka saisitkin tuon eston toimimaan, ei se estä suoralinkitystä. Vaikka IE ei näytäkkään mistä hakemistosta tiedosto ladataan, niin Opera sen tekee. Eli kun kerran Operalla lataa kaikki filut, niin saa suorat linkit noihin tiedostoihin. Toisaalta, eihän tommosia kikkailuja nyt ihan tavallinen peelo välttämättä osaa käyttää, mutta mielestäni aivan turha systeemi. Jos haluat estää ulkoalinkityksen on ainut hyvä tapa sen toteuttamiseen uudelleen nimetä tiedostot joka kerta.

Edit: Ai niin!!! Unohdin tuon .htaccesin! Se on tietenkin paras keino!

Edit2: https://www.ohjelmointiputka.net/keskustelu/3812-tiedosto-koodi tuolla lisää aiheesta

TETRIS [23.05.2004 14:10:30]

#

aah!... no kiitoksia oikein paljon :P


Sivun alkuun

Vastaus

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

Tietoa sivustosta