Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: htaccess-suojaus ja kirjautuminen php:llä

Sivun loppuun

juhana [12.02.2011 14:22:02]

#

Terve,

salasanasuojausjuttuja on tälläkin saitilla käsitelty, mutta äkkiseltään en ole löytänyt suoraa vastausta mieltä askarruttavaan kysymykseen... Eli jos hakemisto on suojattu .htaccesin avulla, onko mitään järkevää mahdollisuutta hoitaa kirjautumista jotenkin muuten kuin selaimen pompauttamalla kirjautumisikkunalla? Eli esim kirjautumislomakkeen ja PHP:n avulla kikkaillen?

Petja [13.02.2011 14:40:15]

#

Voit tehdä html-kielellä formin.

<!-- www.petjatouru.com -->
<form name="kirjautumislomake" method="post" action="">
<input type="text" name="ktunnus" />
<input type="password" name="ssana" />
<input type="submit" value="Kirjaudu" />
</form>

Oletan sinun nyt tässä tapauksessa hallitsevan ainakin php:n alkeet. En valitettavasti voi auttaa pitemmälle, koska en tiedä haetaanko tiedot tietokannasta, millä nimillä jne.

Ja jos kyseessä on erityisesti hakemiston suojaus, voit tehdä htaccesilla yleisen suojauksen ja php:n avulla jonkinlaisen hakemiston luku -skriptin.

P.S. htacces kahdella ässällä, näin: htaccess

Macro [13.02.2011 14:58:50]

#

Empä oo viel nähnyt, että haettaisiin htaccess-tunnukset tietokannasta. Noh, kai sekin voi olla mahdollista.

PHP:n $_SERVER-taulukosta löytyy PHP_AUTH_USER ja PHP_AUTH_PW. Kokeile niitä.

https://www.php.net/manual/en/reserved.variables.server.php

Petja [13.02.2011 15:37:17]

#

Nytpä sotkit asiat pahanpäiväisesti. ;)
En toki tarkoittanut htaccess-tunnuksia tietokannasta hakuun.

Tarkoitin siis, että hakemisto suojataan htaccessia hyödyntäen kokonaan ja kun käyttäjä menee vaikka index.php:lle selaimen kautta, hän syöttää salasanan ja tunnuksen (jotka noudetaan sitten vaikka sieltä tietokannasta), jolloin hänelle luodaan istunto ja hän näkee PHP:n kautta hakemistolistauksen.

Teemu-root [16.02.2011 03:05:02]

#

Jos ymmärsin asian oikein, että et halua sitä selaimen kirjautumisikkunaa ruudulle, niin sulla taitaa olla pari toteutettavissa olevaa vaihtoehtoa. Ensimmäinen on juurikin tuo html-kirjautumislomake ja php-rimpsu lomakkeen käsittelijänä, joka sitten vertaa tunnusta ja salasanan hashia tiedostossa / tietokannassa olevaan ja avaa käyttäjälle istunnon. Silloin pitää aina erikseen tarkistaa kirjautumista edellyttäviä sivuja avatessa onko käyttäjällä voimassa oleva istunto.

Htaccessiakin voi käyttää pienen kikkailun kera, jolloin ei tarvitse itse huolehtia tiedostojen suojaamisesta vaan ne ovat kaikki automaattisesti suojattuna. Voit tehdä itse html-kirjautumislomakkeen ja käyttää pätkän Javascriptiä muuttamaan osoitteen niin, että htaccess-suojauksen tunnukset välitetään jo osoiterivillä eikä mitään erillistä kirjautumisikkunaa aukea. Molemmissa tavoissa on hyviä ja huonoja puolia ja sieltä saattoi jotain tullakin jo ilmi, mutta kannattaa ensin tutustua asiaan ja tehdä päätökset tarpeiden pohjalta. Alla vielä lyhyt esimerkki jälkimmäisestä menetelmästä.

<html>
<body>

Tunnus:
<input type="text" id="tunnus" />

Salasana:
<input type="password" id="passu" />

<input type="button" value="Kirjaudu" onclick="doLogin()" />

</body>
</html>
var url = "www.foo.com/bar/"; // Htaccess-suojatun hakemiston osoite
function doLogin() {
    // Muodostetaan osoite http://tunnus:passu@url ja ohjataan selain siihen
    location.href = "http://" + document.getElementById('tunnus').value + ":"
                  + document.getElementById('passu').value + "@" + url;
}

Petja [16.02.2011 22:28:32]

#

Aiemmin kirjoittamani thread käsitteli htaccessiin kirjautumista dynaamisella IP:llä. Asia ei sinänsä selvinnyt, mutta tässäkin voisi periaatteessa tallentaa hashin (tai minkä nyt tallentaakin ikinä) kekseihin ja jos se täsmää, päästäisi sisään.

juhana [17.02.2011 09:42:46]

#

Täytyypä testailla noita PHP_AUTH_USER ja PHP_AUTH_PW -kikkailuita, kunhan taas on aikaa naputella. Mutta kuvaanpa nyt vielä haluttua tilannetta, jos joku vaikka inspiroituu vielä keksimään vinkkejä :)

Eli on olemassa www.osoite.com/kansio, jonka sisältämät tiedostot haluan pitää rajatun porukan nähtävillä. Siispä /kansio on suojattu .htaccessin avulla. Homma toimii, ja kirjautuminen tapahtuu nyt selaimen kirjautumisikkunan kautta.

Varsinainen kysymykseni on, että onko jotain järkevää tapaa tehdä tuota muuten samaa kirjautumismanööveriä siten, että käyttäjätunnus ja salasana kysyttäisiin nätisti saitin ulkoasussa olevalla html-formilla, eikä selaimen pompauttamalla ikkunalla.

Siis: www.osoite.com/kirjaudutallasivulla.php sisältäisi kirjautumislomakkeen, joka lähettäisi syötetyt tunnaritiedot vaikkapa nyt sitten www.osoite.com/kansio/index.php:lle, jossa /kansio/.htpasswd:n mukaiset tunnukset suorittaisivat kirjautumisen ja antaisivat käyttöoikeudet /kansio:n tiedostoihin.

Onko muuten tietoturvan kannalta jotain eroa, kysytäänkö nämä tiedot formilla vai selaimen omalla ikkunalla? Tai oikeammin, onko formin lähettämisessä otettava jotain huomioon, jotta tietoturva pysyisi samalla tasolla?

Petja [19.02.2011 19:23:34]

#

Toiveesi ei ole mahdollinen, jos haluat nimenomaan käyttää htaccessia. Voit kuitenkin soveltaa tätä edellä annettua neuvoa.

lainaus:

Jos ymmärsin asian oikein, että et halua sitä selaimen kirjautumisikkunaa ruudulle, niin sulla taitaa olla pari toteutettavissa olevaa vaihtoehtoa. Ensimmäinen on juurikin tuo html-kirjautumislomake ja php-rimpsu lomakkeen käsittelijänä, joka sitten vertaa tunnusta ja salasanan hashia tiedostossa / tietokannassa olevaan ja avaa käyttäjälle istunnon. Silloin pitää aina erikseen tarkistaa kirjautumista edellyttäviä sivuja avatessa onko käyttäjällä voimassa oleva istunto.


Sivun alkuun

Vastaus

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

Tietoa sivustosta