Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: int2000 probleema

Sivun loppuun

somero [22.03.2011 11:51:08]

#

Olen luonut muutamia php skriptejä, jotka sijaitsevat admin kansiossa, jonka taas olen salannut .htaccessilla. Kirjautuminen onnistuu, mutta yrittäessäni kirjoittaa tekstitiedostoon perus "lataatiedostotextareaanlähetäformillaeteenpä­in" ei kyseinen skripti löydä tekstitiedostoa. ongelma ei korjaannu, vaikka kirjoittaisin oikean urlin osoiteriville. selvennykseksi vielä, että kyseinen koodirypäs on toiminut moitteettomasti mbnetin servuilla, mutta nyt irtisanoi itsensä.

olisikohan kyse chmodeista?

makumaku [22.03.2011 12:25:34]

#

Mikset kokeile onko?

Mutta jos virhe oli että scripti ei löydä koko tiedostoa, niin epäilen.

somero [22.03.2011 12:46:29]

#

Kyseinen skripti toimii siis tällä tavalla:

<a href="xxxx.com/admin/muokkaa.php?muokkaa­=filunnimi.txt">Filun nimi</a>

ja vaikka tuo filu olisi admin tiedostossa niin se ei löydä sitä?

The Alchemist [22.03.2011 12:58:24]

#

Tarkistat tietysti aluksi, että mistä hakemistosta skripti yrittää tiedostoa lukea. Mikä tässä nyt on niin vaikeaa kokeilla vähän itsekin?

somero [22.03.2011 13:02:44]

#

Se, että olen viettänyt eilen illalla 5h ja tänään 4h tutkien missä mättää.

Kaiken lisäksi kyseinen skripti ei toimi, vaikka tiedosto olisi samassa kansiossa sen kanssa.

Grez [22.03.2011 13:06:47]

#

No jospa laitat lähdekoodin näkyville, niin joku ehkä pystyy sanomaan jotain järkevää siitä.

The Alchemist [22.03.2011 13:18:43]

#

somero kirjoitti:

Se, että olen viettänyt eilen illalla 5h ja tänään 4h tutkien missä mättää.

Kaiken lisäksi kyseinen skripti ei toimi, vaikka tiedosto olisi samassa kansiossa sen kanssa.

No sano nyt sitten, että mikä on se polku, josta skripti yrittää tiedostoa lukea? Eikä mitään mutuilua vaan skriptin outputti. Josset ole jo tarkistanut polkua, niin miksi et?

somero [22.03.2011 13:22:08]

#

<?php
if ($teksti=="") {echo "Tekstiä ei löytynyt!";exit;}
$d=file($teksti);

echo "<form action='tallenna.php?tiedosto=".$teksti."' method='post';  >";
echo "<textarea name='data' rows=20 cols=100 id='teksti'>";

for ($i=0;$i<count($d);$i++){
    echo $d[$i];
}
echo "</textarea><br>";
echo "<input type='submit' value='Tallenna' name='nappi' id='nappi'>";
echo "</form>";

ja vaikka kaikki tiedostot olisivat /admin/ kansiossa ei tuo skripti lataa mitään

EDIT: ja lisättäköön, että toiminut mbnetissä moitteettomasti.

Grez [22.03.2011 13:26:34]

#

Eihän tuota $teksti -arvoa aseteta missään.

Jos tuossa on tarkoitus luottaa register globalsiin, niin hirveästi tuota koodia isompaa tietoturvareikää ei pysty tekemään.

somero [22.03.2011 13:31:47]

#

Mutta miten mbnetissä tuo on löytynyt, mutta ei nyt?

Grez [22.03.2011 13:34:21]

#

MBNetissä oli varmaan register globals oletuksena päällä. Tosin siltikin tuota pitäisi kutsua muokkaa.php?teksti=filunnimi.txt eikä muokkaa.php?muokkaa­=filunnimi.txt

Niin ja lisätään vielä että register globals on huono asia, vaikka sen ansiosta huonosti tehty skripti toimiikin. Tutustu superglobaaleihin kuten $_GET.

Ja tosiaan ellei teknisesti ole rajoitettu tuon koodin ajamista vain luotetuille henkilöille, niin kannattaa sanitoida syödä ja kannattaa ehkä ajaa myös rivit htmlspecialchars -funktion läpi ennen textareaan puuppaamista.

The Alchemist [22.03.2011 13:34:55]

#

Kaikelta tältä häsläämiseltä ja evottamiselta olisit säästynyt yksinkertaisesti ottamalla selvää, mistä polusta skripti yrittää tiedostoa lukea. Kuulostaako tutulta?

PHP:ssä on sellainen ominaisuus kuin register globals, joka ilmeisesti on MBNetissä käytössä.

somero [22.03.2011 13:44:28]

#

Grez kirjoitti:

MBNetissä oli varmaan register globals oletuksena päällä. Tosin siltikin tuota pitäisi kutsua muokkaa.php?teksti=filunnimi.txt eikä muokkaa.php?muokkaa­=filunnimi.txt

Niin ja lisätään vielä että register globals on huono asia, vaikka sen ansiosta huonosti tehty skripti toimiikin. Tutustu superglobaaleihin kuten $_GET.

Ja tosiaan ellei teknisesti ole rajoitettu tuon koodin ajamista vain luotetuille henkilöille, niin kannattaa sanitoida syödä ja kannattaa ehkä ajaa myös rivit htmlspecialchars -funktion läpi ennen textareaan puuppaamista.

Ton skriptin ajo on luotetuille henkilöille. Tsiigaan tuolla getillä saada sen heitettyä. thnx

Metabolix [22.03.2011 19:16:06]

#

Funktio htmlspecialchars kannattaa joka tapauksessa, muuten tiedostojen <- ja >-merkit sotkevat sivun.

somero [22.03.2011 20:24:56]

#

ongelmat korjattu :) kiitoksia kaikille!


Sivun alkuun

Vastaus

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

Tietoa sivustosta