Kuinka selvitetään, sisältääkö tiedosto tietyn sanan?

Miten saa PHP:llä selvitettyä, löytyykö tietystä tiedostosta jokin tietty sana? Vai voiko edes mitenkään?

Luulin, että moinen olis helposti netistä löytyvää peruskamaa, mutta eipä ole Googlekaan auttanut - kaikenlaisia muita tiedoston käsittelyyn liittyviä juttuja kyllä löytyy. Tai sitten en ole vaan osannut etsiä oikein... aloittelija kun olen.

Jos kysymykseni on epäselvä tai epätarkka, niin tässä vähän sitä pätkää, millaisen koodin yhteyteen tollasta tarttisin:

$nimimerkki = $_POST["nimimerkki"];
$salasana = $_POST["salasana"];
$etsittava = "";

Mitäs sitten? Osaisin ehkä netistä löytyvien oppaiden avulla avata ja sulkea tiedoston, mutta sen selvittäminen, löytyykö tuo tietty merkkipätkä eli $etsittava sieltä tiedostosta... en ymmärrä.

Sit jotain:

if(...sana löytyy. Tuleekohan tähän jotain "true"-hommeleita?);
{
echo "Tervetuloa, " . $nimimerkki . "!";
}
else
{
echo "Nimimerkki tai salasana on väärin.";
}

Jos on niin, että menetelmäni salasanojen tallentamiseen on jotenkin väärä, niin saa toki siitä huomauttaa, mutta toivoisin silti, että kysymykseeni vastattaisiin. Pääasiallinen tarkoitukseni ei ole tehdä sivua, jolle tulisi käyttäjiä, sillä mulla ei oo ees sivuja netissä missään, vaan katselen noita kokeilujani omalla koneella. Toki haluan oppia oikeimmat menetelmät, mutta jos virheitä pelkää, ei edisty koskaan. :/

Eli miten - jos mitenkään - selvitetään, löytyykö tietty sana/merkkijono tms. jostakin tietystä tiedostosta?
7421
Äänestä

Muut lukivat myös

Vastaukset 7

Vanhimmat
  • Kiitos kovasti! Noilla se varmaan onnistuu.

    Äänestä

Tuo sinun koodisi näyttää tietoturvaa ajatellen olevan täysin riittämätön ja huono.

Ensinnäkin ohjelman pitäisi edes jollain käsitellä käyttäjiltä tulevat syötteet varmistuakseen siitä ettei syöte ole virheellistä tai haitallista.

Toiseksi salasanat tulisi olla tietokannassa tai vastaavassa hashattyinä vaikkapa SHA1 algoritmilla. PHP:ssä on suorat funktiot hashien totetukseen.

Äänestä
  • Kiitos molemmille tiedoista!

    Noh, kunhan kokeilen ensin noita perusjuttuja, niin sitten voi keskittyä noihin tietoturvajuttuihin enemmän. En tajua niistä vielä mitään.

    Salasanat voi kuitenkin kai olla tiedostossa, mutta vaan jotenkin muokattuna, vai? En tajunnut mitään tuosta tietokannasta, joten koitan vältellä sitä toistaiseksi, jos se ei ole välttämättömyys. :D Koitin ladata koneelle jotain MySQL-hommelia, mutta ei onnistunut... *turhautuminen*

    Äänestä

  • Pakollinen nikki kirjoitti:

    Kiitos molemmille tiedoista!

    Noh, kunhan kokeilen ensin noita perusjuttuja, niin sitten voi keskittyä noihin tietoturvajuttuihin enemmän. En tajua niistä vielä mitään.

    Salasanat voi kuitenkin kai olla tiedostossa, mutta vaan jotenkin muokattuna, vai? En tajunnut mitään tuosta tietokannasta, joten koitan vältellä sitä toistaiseksi, jos se ei ole välttämättömyys. :D Koitin ladata koneelle jotain MySQL-hommelia, mutta ei onnistunut... *turhautuminen*

    Salasanat voi olla siis tiedostossakin. Tiedostoa voi itsessään käyttää "tietokantana".

    Ja salasanat kannattaa pitää tiedostossa "hasheina".

    kokeiles leikkiä vaikka sha1(); funktiolla

    esimerkki.

    echo sha1("salasana");

    Tuon pitäisi tulostaa sanan "salasana" hashattynä SHA1 algoritmillä. Myöhemmin voit sitten vertailla käyttäjän syöttämää salasanaa tietokannasta löytyvään SHA1 hashiin.

    Lisäksi hashiin kannattaa lisätä "suola". Eli salasanan eteen lisätään randomi tai koodaajan määrittämä merkkijono. Tällöin hashin selvittäminen salasana kräkkereillä vaikeutuu huomattavasti.

    Äänestä

  • sdfsfsf kirjoitti:

    Salasanat voi olla siis tiedostossakin. Tiedostoa voi itsessään käyttää "tietokantana".

    Ja salasanat kannattaa pitää tiedostossa "hasheina".

    kokeiles leikkiä vaikka sha1(); funktiolla

    esimerkki.

    echo sha1("salasana");

    Tuon pitäisi tulostaa sanan "salasana" hashattynä SHA1 algoritmillä. Myöhemmin voit sitten vertailla käyttäjän syöttämää salasanaa tietokannasta löytyvään SHA1 hashiin.

    Lisäksi hashiin kannattaa lisätä "suola". Eli salasanan eteen lisätään randomi tai koodaajan määrittämä merkkijono. Tällöin hashin selvittäminen salasana kräkkereillä vaikeutuu huomattavasti.

    Kiitos valaisusta! Nyt tajuan, mitä se suolaaminenkin tarkoittaa!

    Olen tässä leikiskellyt md5:llä ja tuolla sha1:llä, onkohan jälkimmäinen parempi... Pidemmältä ainakin näyttää.

    Äänestä

  • Roskapostirobotti2 kirjoitti:

    Kiitos valaisusta! Nyt tajuan, mitä se suolaaminenkin tarkoittaa!

    Olen tässä leikiskellyt md5:llä ja tuolla sha1:llä, onkohan jälkimmäinen parempi... Pidemmältä ainakin näyttää.

    Sha1 on selvästi parempi. Nykyään löytyy jo pilvin pimein muutenki MD5 cracker sivuja joilla on järjettömät tietokannat md5 hasheista.

    Itse käyttäisin sivulla ehkä jotain vielä tehokkaampaa kuin SHA1

    Äänestä

Kommentoi aloitusta


Wish I knew kirjoitti:

Miten saa PHP:llä selvitettyä, löytyykö tietystä tiedostosta jokin tietty sana? Vai voiko edes mitenkään?

Luulin, että moinen olis helposti netistä löytyvää peruskamaa, mutta eipä ole Googlekaan auttanut - kaikenlaisia muita tiedoston käsittelyyn liittyviä juttuja kyllä löytyy. Tai sitten en ole vaan osannut etsiä oikein... aloittelija kun olen.

Jos kysymykseni on epäselvä tai epätarkka, niin tässä vähän sitä pätkää, millaisen koodin yhteyteen tollasta tarttisin:

$nimimerkki = $_POST["nimimerkki"];
$salasana = $_POST["salasana"];
$etsittava = "";

Mitäs sitten? Osaisin ehkä netistä löytyvien oppaiden avulla avata ja sulkea tiedoston, mutta sen selvittäminen, löytyykö tuo tietty merkkipätkä eli $etsittava sieltä tiedostosta... en ymmärrä.

Sit jotain:

if(...sana löytyy. Tuleekohan tähän jotain "true"-hommeleita?);
{
echo "Tervetuloa, " . $nimimerkki . "!";
}
else
{
echo "Nimimerkki tai salasana on väärin.";
}

Jos on niin, että menetelmäni salasanojen tallentamiseen on jotenkin väärä, niin saa toki siitä huomauttaa, mutta toivoisin silti, että kysymykseeni vastattaisiin. Pääasiallinen tarkoitukseni ei ole tehdä sivua, jolle tulisi käyttäjiä, sillä mulla ei oo ees sivuja netissä missään, vaan katselen noita kokeilujani omalla koneella. Toki haluan oppia oikeimmat menetelmät, mutta jos virheitä pelkää, ei edisty koskaan. :/

Eli miten - jos mitenkään - selvitetään, löytyykö tietty sana/merkkijono tms. jostakin tietystä tiedostosta?

Anonyymi
5000

Ilmoita asiaton sisältö

  • Sisältää materiaalia, joka on loukkaavaa, herjaavaa, rasistista, uhkailevaa tai ahdistelevaa.

  • Materiaali sisältää nimiä, yhteystietoja tai muita henkilökohtaisia tietoja. Julkisuuden henkilöistä, julkisissa viroissa toimivista ihmisistä sekä yritysten vastuuhenkilöistä saa keskustella työhön liittyen. Myös yksityiselämään liittyvistä asioista voi keskustella siltä osin, kuin niistä on julkisesti kerrottu.

  • Sisältää lapsille haitallista tai heiltä kiellettyä materiaalia. Seksuaalinen sisältö on sallittua aiheeseen tarkoitetuilla palstoilla, joiden ikäraja on 18 vuotta.

  • Lainvastaista sisältöä voi olla mm. yksityiselämää loukkaavan tiedon levitys, kiihottaminen kansanryhmää vastaan, laiton uhkaaminen, alaikäisiin liittyvä seksuaalinen sisältö/grooming, petokset, identiteettivarkaudet, kunnianloukkaukset ja tekijänoikeusrikkomukset.

  • Sisältö ei liity palstan tai keskusteluketjun aiheeseen.

  • Viesti ei ole suomea tai ruotsia (pl. International Forums), se sisältää mainontaa, se sisältää tekijänoikeuksin suojattua materiaalia, se on massapostitus tai jokin muu syy.

Jaa keskustelu