Askarruttaa tällainen pieni juttu..
Pitäisikö teidän mielestänne mieluummin olla sivustolla tällainen dynaaminen rakenne, että sivuston alasivut ovat muotoa www.minunsivut.fi/sivu.php?id=linkit jne.
Vai www.minunsivut.fi/linkit.php
Siis, lähinnä haluaisin tietää, että jos rakentaa tollaista id-hässäkkää niin mikä siinä on etuna? Kenties tietoturvaetu, koska käyttäjä ei tiedä minkä .php tiedoston takana tiet on?
Pitäisikö teidän mielestänne mieluummin olla sivustolla tällainen dynaaminen rakenne, että sivuston alasivut ovat muotoa www.minunsivut.fi/sivu.php?id=linkit jne.
Vai www.minunsivut.fi/linkit.php
Siis, lähinnä haluaisin tietää, että jos rakentaa tollaista id-hässäkkää niin mikä siinä on etuna? Kenties tietoturvaetu, koska käyttäjä ei tiedä minkä .php tiedoston takana tiet on?
Vastaukset 9
Vanhimmat
jos sinun sivusi ovat tyyliin etusivu ja linkit niin mitään hyötyä tuosta ei ole, mutta ei tietenkään myöskään haittaa.
Onko nuo dynaamiset sivut sellaisia, joiden sisältö kokonaisuudessaan latautuu tietokannasta?
Eli jos mulla olisi sivuja, joiden sisältö kokonaisuudessaan latautuu tietokannasta, niin silloin kannattaisi toteuttaa tuollainen rakenne, mutta ei silloinkaan välttämätöntä?
Kokonaisuus on osiensa summa.
Osa saattaa latautua tietokannasta ja osa saattaa olla "hard-coded", osan hakemisen saattaa määritellä id-kenttä, toisen osan id-kentän alitunniste, jne.
Itse olen tehnyt yleensä sivut juuri index?p=links jolloin esim. tiedostosta tai kannasta luetaan linkit. Tuntuu hölmöltä että kirjoittaisi jokaisen sivun erikseen, siis index.php, links.php, info.php, jne.
Mikään asiantuntija tässä aihealueessa en kuitenkaan ole, joten suhtaudu tietyllä kriittisyydellä kirjoituksiini. ;)
Eipä tuollaisista itsetarkoituksellisista "dynaamisista" linkeistä ole mitään hyötyä. Haittaa niistä kyllä on, nimenomaan tuon tietoturvan kannalta, koska vihamielinen käyttäjä voi ladata jonkun muualla sijaitsevan sivun, joka sisältää haitallista koodia.
Jos kuitenkin haluaa käyttää tuota "id-hässäkkää", niin kannattaa rakentaa se siten, että arvoksi hyväksytään vain kirjaimia tai numeroita:
$sivu = $_GET['sivu'];
if (preg_match("/^[a-zA-Z0-9] $/", $sivu))
include("$sivu.html");
else
echo "Virheellinen parametrin arvo!";
www.minunsivut.fi/linkit.php on aina parempi kuin www.minunsivut.fi/sivu.php?id=linkit
Tosin mielestäni vielä parempi olisi www.minunsivut.fi/linkit
Dynaamisesti toteutetut sivut tosiaan usein tuppaa olemaan noita typerimpiä osoitteita, mutta jos jaksaa tutustua vähäsen apachen rewrite-moduliin niin osoitteista saa parempia.
Milloinkos tuota näkyvää get parametria osotteissa pitää käyttää?
Esim
www.minunsivut.fi/linkit/uusimmat vaiko
www.minunsivut.fi/linkit?nayta=uusimmat
www.minunsivut.fi/linkit/2 vai
www.minunsivut.fi/linkit/sivu_2 vai
www.minunsivut.fi/linkit/sivu/2 vai
www.minunsivut.fi/linkit?sivu=2
Rewritellä saa helposti, että kaikki sivu pyynnöt ohjataan index.php:lle jossa on pikkuinen scripti joka sitten hakee sisällön esim tietokannasta.
Kyllä tuo dynaaminen hässäkkä on mielestäni parempi. silloin tarvitsee tehdä vain sivupohja ja muuttuvat sivut. jos taas tekee ilman sitä, on joka sivu periaatteessa tehtävää "omanaan".
Tosin tuo dynaamisuus aiheuttaa tietoturvaongelmiakin. Esim. XSS on joissain tapauksissa mahdollista sen avulla.
tehdä sivupohjaa html:llä ja tuoda siihen vakiotyylit erillisellä css-tiedostolla ja vakiosisällöt
Eihän tällöin jokaista sivupohjaa tehdä omanaan, vaikka tehdäänkin erikseen, eli jokaiselle sivulle annetaan oma nimi ja oma teksisisältö, mutta jonnekihan se sisältö pitää kuitenkin kirjoittaa. Siis käsittääkseni "dynaamisessa hässäkässä" on suunnilleen yhtä paljon työtä (vaikka en php:tä juurikaan vielä osaa).
Kun teette tänne "demo_osoitteita" - tarkistakaa,
ettei osoite ole jonkun käytössä=käyttäkää omaa osoitettanne !
yst. Minununsivut.fi
Webmaster