Salatut sivut ja käyttäjän tunnistus

HTML, php, JavaScript, .css, käytettävyys, saavutettavuus, kuvankäsittely...

Salatut sivut ja käyttäjän tunnistus

ViestiKirjoittaja JungleDongle » Su Tammi 31, 2010 23:53

Saisikohan täältä apuja ongelmaan kun tarvitsisi tehdä extranet tyylinen sivuston osa johon pääsee vain tunnareilla. No se onnistuu oliko .htaccess tiedostolla mutta onko olemassa jotain muuta parempaa tapaa? Ja onko jotain mallia millä saisi sisäänkirjautujan nimen näkymään aukeavalle sivulle? Miten yleensä tällaisia on tehty kun ei ole mitään muuta käytössä kuin web serveri.
JungleDongle
 
Viestit: 9
Liittynyt: Su Tammi 31, 2010 13:09

Re: Salatut sivut ja käyttäjän tunnistus

ViestiKirjoittaja micfire » Ma Helmi 01, 2010 0:04

Käsittääkseni turvallisuuden kannalta .htaccess on paras koska se suojaa itse webserverissä "asti", mutta sitten taas jos halutaan jotain kivaa käyttäjäprofiilia niin sitten PHP:n sessiot tms. Noita auth tutoriaaleja on netti pullollaan joten ei muuta kuin lukemaan. Jos on yrityksestä kyse niin pidä huoli, että teet sen järjestelmän jonkun olemassa olevan turvalliseksi todetun metodin mukaan. Muuten tulee sanomista kun joku vetää XSS:llä sen auki ja firman kamat on julkisesti jaossa.
Käyttäjän avatar
micfire
 
Viestit: 891
Liittynyt: Ti Maalis 06, 2007 19:44

Re: Salatut sivut ja käyttäjän tunnistus

ViestiKirjoittaja Maybachh » Ma Helmi 01, 2010 1:27

Suosittelen jotain valmista pohjaa tähän, koska .htaccessilla ei voi luoda käyttäjätasoja ym. hienoja väkerryksiä.

Tietenkin jos kaikki käyttäjät on samanarvoisia, niin miksei sitten sekin.
Maybachh
 
Viestit: 94
Liittynyt: Ti Joulu 08, 2009 2:53

Re: Salatut sivut ja käyttäjän tunnistus

ViestiKirjoittaja vns » Ma Helmi 01, 2010 22:24

Joo ei extranettiä ihan htacceseilla rakenneta... Kannattaa suosiolla tutustua esim. Drupaliin. Extranet on sitten viimienen asia, jonka tietoturva yms kannattaa kusta.
Käyttäjän avatar
vns
 
Viestit: 198
Liittynyt: Su Tammi 28, 2007 2:06

Re: Salatut sivut ja käyttäjän tunnistus

ViestiKirjoittaja JungleDongle » Ke Helmi 03, 2010 23:01

Tarkoitus on laittaa suojatulle sivulle mahdollisuus täyttää lomaketta ettei tarvitsisi lippulappuja käsin keräillä eli ei siellä mitään yrityksen kannalta kovin tärkeätä tietoa tai tiedostoja pidetä. Kaikki käyttäjät on samanarvoisia. Olisi vain hyvä että lomakkeeseen tulisi nimi käyttäjän tunnuksen mukaan. En tiedä onko tuo Drupal ehkä liian raskas paketti vain tähän käyttöön..?

Tarkoititteko valmiilla pohjalla jotain valmista php koodia joka mahdollistaa kirjautumisen johonkin sivulle?

Ja ihan offtopic kysymys samalla, mitä tarkoittaa kun HTML form koodissa on action- kohdassa / merkki? Like so <form method="post" action="/">
JungleDongle
 
Viestit: 9
Liittynyt: Su Tammi 31, 2010 13:09

Re: Salatut sivut ja käyttäjän tunnistus

ViestiKirjoittaja Konda » To Helmi 04, 2010 3:38

JungleDongle kirjoitti:Ja ihan offtopic kysymys samalla, mitä tarkoittaa kun HTML form koodissa on action- kohdassa / merkki? Like so <form method="post" action="/">


Silloin lomakkeen tiedot lähetetään domainin juuressa sijaitsevan tiedoston, esim. index.php (tai muu serverin konffeissa juuren default-tiedostoksi määritetty tiedostonimi) käsiteltäväksi.
Konda
 
Viestit: 20
Liittynyt: La Kesä 06, 2009 19:34

Re: Salatut sivut ja käyttäjän tunnistus

ViestiKirjoittaja JungleDongle » Ke Maalis 31, 2010 16:55

Onkohan php muuten kokonaan server side koodia? Eli siitä ei tule mitään kävijän koneelle missään muodossa?
JungleDongle
 
Viestit: 9
Liittynyt: Su Tammi 31, 2010 13:09

Re: Salatut sivut ja käyttäjän tunnistus

ViestiKirjoittaja micfire » Ke Maalis 31, 2010 17:16

JungleDongle kirjoitti:Onkohan php muuten kokonaan server side koodia? Eli siitä ei tule mitään kävijän koneelle missään muodossa?

Tota, pit√§isik√∂h√§n sun ensin opiskella ihan ABC-perusteet ennen kuin l√§hden toteuttamaan mit√§√§n mik√§ tulee julkiseen k√§ytt√∂√∂n. Kyseess√§ on kuitenkin asiat mitk√§ potentiaalisesti vaikuttaa sun saitin tietoturvallisuuteen ja eik√∂h√§n √Ąlyp√§√§ taas demonstroinut mit√§ tapahtuu kun palveluita toteuttaa osaamattomat ihmiset. Jostain sit√§ on l√§hdett√§v√§, mutta harjoittele perusteet ensin omissa projekteissa eik√§ julkisissa :)
Käyttäjän avatar
micfire
 
Viestit: 891
Liittynyt: Ti Maalis 06, 2007 19:44

Re: Salatut sivut ja käyttäjän tunnistus

ViestiKirjoittaja mannerv » Ke Maalis 31, 2010 17:30

Kuva
mannerv
 
Viestit: 643
Liittynyt: Su Syys 21, 2008 18:34

Re: Salatut sivut ja käyttäjän tunnistus

ViestiKirjoittaja mannerv » Ke Maalis 31, 2010 19:09

JungleDongle kirjoitti:Onkohan php muuten kokonaan server side koodia? Eli siitä ei tule mitään kävijän koneelle missään muodossa?

PHP on palvelinpuolen koodia, kyllä.

HTTP on kuitenkin luonteeltaan tilaton protokolla. Jos haluat säilyttää tilan, tässä tapauksessa "käyttäjä on kirjautunut sisään", tulee sinun jollakin tavalla välittää tieto tästä tilasta eri pyyntöjen välillä. Puhutaan siitä, että sinun tulee luoda jokaisella käyttäjälle istunto eli sessio.

Sinun tulee siis luoda palvelimelle koodi, jossa tunnistat käyttäjän (user authentication) sekä hallitset kirjautuneen käyttäjän istuntoa (session management). Yleisin tapa session hallintaan on asettaa käyttäjän koneelle eväste eli englanniksi cookie. Tavallaan siis käyttäjän koneelle tulee jotakin jossakin muodossa.

Wikipedia selittää saman asian näin:

HTTP on normaalisti tilaton. Tämä tarkoittaa, ettei seuraavan pyynnön tulos riipu mitenkään edellisen tuloksesta ja kaikki asiakkaat saavat saman tuloksen samalla pyynnöllä. Tämä on kuitenkin melko rajoitettua, koska esimerkiksi verkkokaupan ostoskori tai kirjautuminen käyttäjätunnuksella foorumille olisivat mahdottomia tilattomalla protokollalla.
Käyttäjien istuntojen (session) toteuttamiseen HTTP:ssä on useita keinoja. Luotettavimmat näistä liittyvät evästeiden (cookie) käyttöön. Tällöin palvelin asettaa asiakasohjelmalle evästeen Set-Cookie-kentällä pyynnön yhteydessä. Vastaavasti palvelimelle luodaan ja pidetään muistissa istuntoon liittyvä tieto. Istunnon voisi muodostaa luottamalla pelkästään evästeiden välittämään tietoon, mutta tämä on usein hankalaa ja mahdollisesti tietoturvariski. Tietoturvan ylläpitämiseksi istunto sidotaan myös käyttäjän IP-osoitteeseen, johon luottaminen ainoana istunnon tunnisteena on epävarmaa (mm. siksi, että usea eri käyttäjä voi hakea sivuja saman IP-osoitteen takaa. Katso osoitteenmuunnos) Myös evästeisiin luottaminen on suhteellisen epävarmaa, koska niille varattu tila on rajattu ja monet käyttäjät estävät ainakin epämääräisten evästeiden käytön. Istuntoon liittyvä tilatieto voidaan välittää myös URL:n yhteydessä parametrina, mutta sekin on ongelmallista väärin toteutettuna. Vastaavasti palvelimen kapasiteetti on rajallinen, joten vanhoja ja käyttämättömiä istuntoja on siivottava pois tietyin väliajoin, mikä saa liian kauan käyttämättömä olevan istunnon katkeamaan.


Yleisin tapa tehdä dynaamisia verkkosivustoja, jollainen sinunkin sivustosi kuulostaa olevan, on tehdä Linux-palvelimelle, jossa on Apache-palvelinohjelmisto PHP-koodia MySQL-tietokannan päälle. Muitakin vaihtoehtoja löytyy, mutta tämä ns. LAMP on ehkä paras tapa aloittaa, jos et ole aiemmin web-ohjelmointia harrastanut.

Hyviä koodinpätkiä ja ohjeita PHP käyttäjänhallinnasta on yllättävän hankala löytää netistä. Melkein suosittelen, että tilaat itsellesi aiheesta jonkun hyvän kirjan vaikkapa Amazonista. Tuosta se kuitenkin lähtee, tekemällä. Tee joku versio koodistasi ja laita se jonnekin foorumille kommentoitavaksi. Pikkuhiljaa opit sitten tapoja parantaa koodiasi.
mannerv
 
Viestit: 643
Liittynyt: Su Syys 21, 2008 18:34

Re: Salatut sivut ja käyttäjän tunnistus

ViestiKirjoittaja JungleDongle » La Huhti 03, 2010 11:58

micfire kirjoitti:
JungleDongle kirjoitti:Onkohan php muuten kokonaan server side koodia? Eli siitä ei tule mitään kävijän koneelle missään muodossa?

Tota, pit√§isik√∂h√§n sun ensin opiskella ihan ABC-perusteet ennen kuin l√§hden toteuttamaan mit√§√§n mik√§ tulee julkiseen k√§ytt√∂√∂n. Kyseess√§ on kuitenkin asiat mitk√§ potentiaalisesti vaikuttaa sun saitin tietoturvallisuuteen ja eik√∂h√§n √Ąlyp√§√§ taas demonstroinut mit√§ tapahtuu kun palveluita toteuttaa osaamattomat ihmiset. Jostain sit√§ on l√§hdett√§v√§, mutta harjoittele perusteet ensin omissa projekteissa eik√§ julkisissa :)


No joo. En ole kuitenkaan sen verran hölmö että lähtisin julkisella projektilla kokeilemaan mitä tapahtuu. Tässähän juuri yritän asiaa opetella...


mannerv kirjoitti:
JungleDongle kirjoitti:...PHP-koodia MySQL-tietokannan päälle.


Muuten tuota ajattelin mutta tuo SQL-kanta ei kyllä tullut mieleen. Eli meinasitko tarkemmin että käyttäjätiedot (salasanat, käyttäjätunnukset ym.) säilytetään sql-kannassa josta niitä kysellään tarkistukseen kun käyttäjä pyrkii suojatulle osiolle sivustoa?
JungleDongle
 
Viestit: 9
Liittynyt: Su Tammi 31, 2010 13:09

Re: Salatut sivut ja käyttäjän tunnistus

ViestiKirjoittaja mannerv » La Huhti 03, 2010 14:56

JungleDongle kirjoitti:Eli meinasitko tarkemmin että käyttäjätiedot (salasanat, käyttäjätunnukset ym.) säilytetään sql-kannassa josta niitä kysellään tarkistukseen kun käyttäjä pyrkii suojatulle osiolle sivustoa?

Salasanoja ei talleteta SQL-kantaan vaan salasanojen ja suolan pohjalta hash-funktion avulla muodostettu hash. Kun käyttäjä syöttää salasanansa järjestelmään, teet käyttäjän syöttämälle salasanalle hash-operaation ja vertaat sitä tietokantaan talletettuun hashiin. Jos hashit täsmäävät, avaat käyttäjälle session ja päästät sisälle järjestelmään. Session poistat kun jokin aikaraja tulee täyteen tai kun käyttäjä kirjautuu ulos järjestelmästä.

Jokaisella käyttäjällä voi olla vielä oma, satunnainen ja tarpeeksi pitkä suola, joka talletetaan tietokantaan käyttäjätunnuksen ja hash-operaation tuloksena saadun hashin kanssa.
mannerv
 
Viestit: 643
Liittynyt: Su Syys 21, 2008 18:34

Re: Salatut sivut ja käyttäjän tunnistus

ViestiKirjoittaja JungleDongle » Ke Huhti 14, 2010 10:54

Eli tää hash-operaatio olis joku php-funktio? Joku laskutoimitus jossa saan käyttäjän syöttämällä salasanalla ja php-koodiin laitetulla suolalla aikaan hashin joka pitäisi olla tietokannassa jotta käyttäjä voidaan päästää sisään?

Onko tästä hyötyä se että jos joku pääsee php-koodiin, ei hän vielä saa salasanoja? Pitäisi päästä koodiin ja tietokantaan jotta saisi selvitettyä salasanat?
JungleDongle
 
Viestit: 9
Liittynyt: Su Tammi 31, 2010 13:09

Re: Salatut sivut ja käyttäjän tunnistus

ViestiKirjoittaja dRD » Ke Huhti 14, 2010 11:22

JungleDongle kirjoitti:Eli tää hash-operaatio olis joku php-funktio? Joku laskutoimitus jossa saan käyttäjän syöttämällä salasanalla ja php-koodiin laitetulla suolalla aikaan hashin joka pitäisi olla tietokannassa jotta käyttäjä voidaan päästää sisään?

Onko tästä hyötyä se että jos joku pääsee php-koodiin, ei hän vielä saa salasanoja? Pitäisi päästä koodiin ja tietokantaan jotta saisi selvitettyä salasanat?


Eikun periaatteessa salasanaa ei voi tuon jälkeen enää avata takaisin (sanon periaatteessa, koska kaiken voi avata). Eli kun käyttäjä rekisteröityy, teet "laskutoimituksen" Hash() -funktiolla, johon lätkäiset sulkujen sisään käyttäjän salasanan ja "suolan" (joku salainen, pitkä tekstirimpsu, joka on sulla vain koodissa) ja saat siitä 128-bittisen merkkirimpsun. Talletat käyttäjäkantaan vain tuon merkkirimpsun, et salasanaa ollenkaan.

Kun käyttäjä myöhemmin kirjautuu sisään ja syöttää salasanansa, teet syötetylle salasanalle taas saman homman, eli tuon Hash(salasana+suola) ja vertaat tuosta saatua merkkirimpsua tietokannassa olevaan merkkirimpsuun. Jos ne vastaavat toisiaan, on salasana oikein.

Eli "salasanan palautus" on mahdotonta, jos saitti on tehty oikein. Eli jos joku sivusto tarjoaa sinulle mahdollisuutta lähettää alkuperäinen oma salasanasi sähköpostitse, kun olet sen unohtanut, tarkoittaa se sitä, että kyseisen saitin tietoturva on aika heikossa hapessa.
dRD
 
Viestit: 537
Liittynyt: Ti Tammi 31, 2006 14:14

Re: Salatut sivut ja käyttäjän tunnistus

ViestiKirjoittaja Foge » To Huhti 15, 2010 19:26

Mullakin olis tarvetta vähän vastaavalle systeemille, enkä ole onnistunut vielä löytämään sopivaa scriptiä. Jos joku tietää miten tällainen löytyis tai jos omasta näppiksestä irtoo helpolla niin olisin kiitollinen. Jotain sessiopohjaista php hässäkkää tarttisin, joka kysyy numeroa ja jos antaa numeron väliltä 17830-20000 niin saisi sivut näkyviin, mutta jos numero ei osu tuohon haarukkaan niin ohjattaisiin sivulle B. Tuon siis pitäisi olla sivulla niin, että sisällön saisi näkyviin vasta kun antaa sopivan numeron. Pitäis siis todellakin olla näin yksinkertainen - kyse ei ole tietoturvasta vaan eräänlaisesta sivuston vip-osasta.
Foge
 
Viestit: 276
Liittynyt: Ma Joulu 01, 2008 12:55

Seuraava

Paluu Web-suunnittelu & koodaus

Paikallaolijat

Käyttäjiä lukemassa tätä aluetta: Ei rekisteröityneitä käyttäjiä ja 1 vierailijaa

cron