Mitä pitäisi tehdä

Minulla on pieni php skripti joka hakee tietoa MySQL tietokannasta käyttäjän antaman hakusanan perusteella.

Mitkä tietoturva-asiat pitäisi ottaa huomioon. Ettei vain käyttäjä antaisi jotain haitallista koodia hakukenttään.
3250
Äänestä

Muut lukivat myös

Vastaukset 3

Vanhimmat

Eipä mitään ihmeellisiä asioita, muutama perus juttu vain

1) Syöte aina http://fi.php.net/manual/fi/function.mysql-real-escape-string.php tai vastaavan function läpi. Escapettaa (\) haitalliset merkit.

2) Sekä hakuehdot ' ' merkkien sisään ei " " merkkien. Esim WHERE teksti = 'pöö'

3) Ei liity varsinaisesti enään tähän, mutta jos esim tarttetaan vain numeroita, niin silloin katsotaan että ne on todellakin numeroita.


Jos mahollista, niin suorita haku tunnuksilla millä on mysliin vain lukuoikeudet, näin turvallisuus paranee huomattavasti. Haunhan ei tarvitse mysliin kirjoittaa mitään.


Sekä myslin tunnukset pois scriptistä ja includetetaan ne netin ulkopuolisesta hakemistosta. Näin tunnukset ei joudu ulkopuolisten käsiin jos php-tulkki sekoaa.

Sekä includettavien pääte kannattaa pitää php eikä inc, jos palvelimen asetuksista ei ole estetty inc päätteisten tiedostojen näyttöä. (Jos netin ulkopuoliseen hakemistoon, niin silloin päätteellä ei merkitystä)

Voin illal katsoa joskos kotikoneella on talles yks linkki jossa pölötetään näistä php jne... turvallisuudesta.

Vielä lopuksi, pidä kaikki virheet näkyvissä kun kehität scriptiä sekä pidä mielessä, että käyttäjä kirjoittaa kenttiin mitä ihmeellisimpiä juttuja.

Äänestä
  • http://shiflett.org/php-security.pdf

    Tuossa on se opas mistä puhuin.


    *Yksi tapa on myös poistaa hakustringistä kaikki muut merkit kuin aakkosnumeeriset.*

    Onhan tämä ihan hyvä tapa joihinkin asioihin, mutta mielestäni ei kovinkaan hyvä hakujuttuihin, varsinkin jos on tietokanta käytössä. Noitten merkkien lisäksi sallisin ainaskin välilyönnin.

    Kannattaa myös harkita oman function tekoa näille tarkasyuksille, jolloin asiaa on helpompa hallita.

    Äänestä

Yksi tapa on myös poistaa hakustringistä kaikki muut merkit kuin aakkosnumeeriset. Tämä tosin toimii vain jos muu ohjelma on rakennettu noudattamaan plain-hakua esim. avainsanalistojen muodossa.

Äänestä

Kommentoi aloitusta


tietoturva kirjoitti:

Minulla on pieni php skripti joka hakee tietoa MySQL tietokannasta käyttäjän antaman hakusanan perusteella.

Mitkä tietoturva-asiat pitäisi ottaa huomioon. Ettei vain käyttäjä antaisi jotain haitallista koodia hakukenttään.

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