Tietoturvasta kysymyksiä.

Olen luomassa koulun lopputyöksi drupal 6.15 toteutettua sivustoa ja haluaisin nyt kysellä turvallisen koodin kirjoittamisesta, käytän siis sivuillani php:tä, kyselen ihmisiltä asioita ja tallennan ne tauluun. http://drupal.org/node/101496 on ohjeet kuinka kirjoittaa turvallista koodia. Tuolla sivustolla kaikki taulukkoon kohdistuvat hommelit alkaa selectillä mutta niitä on ilmeisesti syytä myös käyttää insert into lauseissa sekä kaikissa muissa kyselyissä mitkä tehdään? Seuraavaan koodinpätkään ei vain omat aivot taivu että miten tuohon tehdään tietoturvaa parantavat säädöt.

$lause = "INSERT INTO tulot (tulo, summa, toisto, paiva, kuukausi, vuosi, kid) VALUES
('$_POST[tulo]','$_POST[summa]','$_POST[toisto]','$pva','$_POST[kuukausi]','$_POST[vuosi]','$user->uid')"; // Määritetään tallennus komento
db_query($lause) or die ("Tietoa ei pystytty tallentamaan".mysql_error()); // Tallenetaan tietoa tietokantaan määritetyllä komennolla
print("
Tieto ".check_plain($_POST[tulo])." tallennettu"); // Tulostetaan käyttäjälle palautetta, tämä ei tulostu jos tallennus epäonnistuu

Seuraava kysymys koskeekin tuota check_plain() komentoa? Mitä se tarkalleen ottaen tekee ja tarvitseeko sen kanssa käyttää jotain muuta komentoa täydentämään sen toimintaa?

Millä tavoin tekstikentät yms. pitäisi luoda? Käsitin että drupalissa olisi oma toiminto niitä varten jota kutsutaan apiksi. Tästä aiheesta löysin todella huonosti ohjeistusta. Joten linkki vinkkejä kaivataan tai jonkin muunlaista opastusta.

Ja tänne kirjautessani huomasin että käytössä oli kuvantunnistus jolla varmistetaan että kyseessä on ihminen eikä botti, niin onko tuo joku ladattava moduuli? Jos niin mistä löytyy?

Kuvantunnistus

Tämän sivusto captcha on toteutettu mollom-moduulilla. Tuo moduulin saa ladattua osoitteesta http://drupal.org/project/mollom
Osoitteesta http://drupal.org/project/captcha löytyy vaihtoehtoja mollomille.

Ok

Kiitoksia vinkistä. Päädyin käyttämään Perus CAPTCHA:a joka suomentui kiltisti ilman suurempia kysymyksiä suomeksi. :)

Kun kerran Drupalissa on

Kun kerran Drupalissa on mahdollista kirjoittaa noodiin php:tä, niin helposti voi tulla mieleen (itsellekin tuli ekaksi) kirjoittaa koodia sinne, mutta koodin tallentamista tietokantaan ei suositella käytännöllisistä ja tietoturvasyistä.

Kuulostaa siltä, että yrität rakentaa turhaan toiminnallisuutta, jonka Drupalissa voi tehdä ilman rivinkään ohjelmointia esim. Webformilla tai CCK:lla riippuen siitä mitä tarkkaanottaen olet tekemässä. Webformilla, varsinkin sen viimeisellä versiolla ehdollisine kysymyksineen, voi tehdä jo aika mukavia galluppeja tai kyselytutkimuksia.

Turvallisuudesta kannattaa lukea Greg Knaddisonin Cracking Drupal.

Kiitoksia vastauksesta.

Ja kirja vinkistä. :) Kirjaa odotellessa niin voisitko kertoa jotain pieniä esimerkkejä millaisia ongelmia on luvassa jos kirjoittelee koodia nodeihin? (Periaattessa ainakin tulevaa lopputyötä varten tarvitsee olla koodia jolla osoittaa omaa osaamista. Joten sinne nodeihin se nyt joutuu ainakin toistaiseksi. Vai olisiko sille olemassa jotain fiksumpaa paikkaa?)
Itse törmäsin etsiessäni drupalin ohjeita turvallisen koodin kirjoittamisesta http://drupal.org/node/101496 linkkiin jossa on ohjeita sql injektio iskun varalle sekä muita hyviä vinkkejä. Ongelmana olleen koodin sain taipumaan muotoon

$lause = "INSERT INTO tulot (tulo, summa, toisto, paiva, kuukausi, vuosi, kid) VALUES
('%s', %f, %d, %d, %d, %d, %d)"; // Määritetään tallennus komento
db_query($lause,$_POST[tulo],$_POST[summa],$_POST[toisto],$pva,$palaset[1],$palaset[2],$user->uid)

Jolloin sen pitäisi olla sellainen että se tallentaan ilkeän koodin pätkän sellaisenaan ilman että se osallistuu kyselyn muodostamiseen.. Jos nyt ymmärsin tuon oikein. Puhtaan mysql kielen käyttäminen sivulla olisi pelottavaa koska se ohittaa kaikki drupaliin rakennetut suojat. check_plain() ei oikein ole löytynyt tieto mikä se on ja mikä sen tarkoitus on. Jos käsitin oikein sen pitäisi olla vähän vastaava kuin strip_tags mysql:stä.

Yritin opetella tuon Webformin käyttöä mutta vielä se oikein taipunut. Kirjoittele sähköpostiin ukunsa ät hotmail.com jos haluat käydä katselemassa rakenteilla olevaa sivustoa ja antaa hyviä vinkkejä sen suhteen.

Kommenttien lukemisen asetukset

Valitse, kuinka kommentit näytetään ja klikkaa "Tallenna asetukset".