PHP ja turvallisuus

Muutama kysymys PHP:n turvallisuudesta, SQL injektiot ja mitä näitä onkin.
1) Kannattaako data varmistaa vaarattomaksi sisäänkirjoittamisen yhteydessä ennen tietokantaan tallettamista vai vasta tietokannasta käytettäessä? Yksi testailija kommentoi, että ei tarkisteta tietokantaan kirjoitettaessa. Miksi, jos tulostus- ja muita käyttökohteita on lukemattomia. Paitsi että näkisi kuka kirjoittelee puuta heinää tai yrittää jotakin kyseenalaista.
2) Mikä olisi selkein tapa varmistaa, että merkkijono on turvallisesti tietokantaan kirjoitettavissa? Olen löytänyt monenlaisia esimerkkejä, mutta en ole varma, mikä olisi paras.
3) Mitä muita asioita liittyy PHP:n turvallisuuteen. Käytössä on viimeisin versio. Tarkoitus on tehdä harrastukseen liittyvien havaintojen kirjaamiseen liittyvä tietokanta, josta saa erilaisia tulosteita. Käyttäjät kirjautuvat ja salasanojen kryptaus on tehty. Haluan varmistaa turvallisuus asioita ennen julkaisemista. Sovellus on sinänsä aika yksinkertainen. Uuden tiedon kirjaus, itse kirjatun tiedon korjaus tai poisto ja erilaiset tulosteet.
Kiitos kommenteista.
61330
Äänestä

Muut lukivat myös

Vastaukset 6

Vanhimmat

Kaikki mitä HTTP:llä tulee sisään pitää tarkistaa. Sen lisäksi jos selain ajaa käyttöliittymäosaa, siinä sitten yleensä lisää tarkistuksia vaikka samoja tarkistettaisiin jo PHP:llä.

Eli tarkistus tulisi silloin ennen kuin kantaan menee mitään. SQL injektio kun tarkoittaa sitä, että annetaan vaikka käsky tietokannalle niin se pitää tarkastaa ettei siellä joku jekkuile laittamalla nimeksi ; DROP customers

Äänestä

Kiitos vastauksesta!
Jos on vaikka muuttujassa $place tarkoitus kerätä tietokantaan paikkakunta. Miten se tarkastettaisiin ennen tietokantaan talletusta?
Numerotietoja ja päivämääriä ei tarvinne tarkistaa, kun muuta ei voi syöttää. Sähköpostiosoite ilmeisesti pitää tarkistaa, vaikka sekin vaatii jonkin [email protected] muotoisen merkkijonon.

Äänestä
  • Paikkakunta valittaisiin käyttöliittymästä jostain listasta ja sama lista sitten backendin puolelle, että on sitä mitä olettaa olevankin.

    Sähköpostiosoitteita voi tarkastaa regexillä: https://en.wikipedia.org/wiki/Regular_expression

    Ihan kaikki käyttöliittymästä tulevat asiat pitää tarkistaa koska kaikki käyttöliittymästä lähtevät viestit ovat muokattavissa.

    Äänestä

Lista oli hyvä ajatus, vaikka lisää ylläpitotyötä, varmistaa samalla ettei tule kirjoitusvirheitä. Muutenkin hyvä vinkki, Vielä kaipaan kuinka tarkistetaan vapaateksti, jolle on varattu 256 merkkiä pitkä merkkitila tietokannasta. Ääkköset täytyy sallia, samoin melkein kaikki ascii-merkit, ei siis vain kirjaimet ja numerot. < ja > sekä ; voisi olla esim kiellettyjä. Ehkä /-merkki pitäisi sallia. Jos siis tarkistetaan merkki kerrallaan? Vai onko joku muu tapa kätevämpi? Luin jostain htmlchr ...

Äänestä
  • Käy läpi silmukassa kaikki kielletyt merkit strposin avulla.

    Äänestä

Ei vastausta. Voisiko joku laittaa vaikka linkin?

Äänestä

Ketjusta on poistettu 1 sääntöjenvastainen viesti.

Kommentoi aloitusta


Anonyymi kirjoitti:

Muutama kysymys PHP:n turvallisuudesta, SQL injektiot ja mitä näitä onkin.
1) Kannattaako data varmistaa vaarattomaksi sisäänkirjoittamisen yhteydessä ennen tietokantaan tallettamista vai vasta tietokannasta käytettäessä? Yksi testailija kommentoi, että ei tarkisteta tietokantaan kirjoitettaessa. Miksi, jos tulostus- ja muita käyttökohteita on lukemattomia. Paitsi että näkisi kuka kirjoittelee puuta heinää tai yrittää jotakin kyseenalaista.
2) Mikä olisi selkein tapa varmistaa, että merkkijono on turvallisesti tietokantaan kirjoitettavissa? Olen löytänyt monenlaisia esimerkkejä, mutta en ole varma, mikä olisi paras.
3) Mitä muita asioita liittyy PHP:n turvallisuuteen. Käytössä on viimeisin versio. Tarkoitus on tehdä harrastukseen liittyvien havaintojen kirjaamiseen liittyvä tietokanta, josta saa erilaisia tulosteita. Käyttäjät kirjautuvat ja salasanojen kryptaus on tehty. Haluan varmistaa turvallisuus asioita ennen julkaisemista. Sovellus on sinänsä aika yksinkertainen. Uuden tiedon kirjaus, itse kirjatun tiedon korjaus tai poisto ja erilaiset tulosteet.
Kiitos kommenteista.

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