Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: PHP: lomakkeen koodin siivous

Jaska [18.01.2007 06:28:12]

#

Jos teen webbisivun ja lisään siihen lomakkeen, johon käyttäjä kirjoittaa PHP-koodia, se suoritetaan. Voinko jostain kertoa PHP:lle, että koodia ei halutakaan suorittaa? Harmaita hiuksia aiheuttaa myös se, että krakkeri voi kirjoittaa lomakkeelle koodia heksadesimaalimuodossa, joten miten tuohon voisi varautua?

ajv [18.01.2007 06:33:56]

#

Ei sitä lomakkeen lähettämää PHP-koodia suoriteta, ellet sitä nimenomaan halua, vai mitä tarkoitat? Suoritat sen tahallasi eval()-funktiolla?

Jaska [19.01.2007 19:52:24]

#

Löysin tänään asiaan toisen mielipiteen: http://keskustelu.suomi24.fi/show.fcgi?category­=108&conference=500000000000005&posting­=22000000021279556 , ja myös oma kokeilu on toista mieltä. Täytyy tutustua säännöllisiin lausekkeisiin.

Agony [19.01.2007 21:22:53]

#

Mielelläni näkisin kokeilukoodisi, sillä PHP:n muuttujia suoritetaan vain kun
a) ne ajetaan evalin läpi tai
b) ne ajetaan preg_replacen tain muun vastaavaan säännöllisen lausekkeen parseroijan läpi lisävivulla /e (evaluate) tai
c) ne ajetaan execin läpi...

Toki lomakkeelta tulevaa dataa tulee käsitellä sen mukaan mihin se data on menossa:

1. Data menossa tietokantaan: mysql_real_escape_string tai muu vastaava SQL Exploitin estämiseksi
2. Data menossa sivulle: htmlentities sivuston tagien sulkemisen ja omien tagien syöttämisen estämiseksi, estää mukavasti myös javascriptit tyyliin alert("Tämän sivuston ylläpitäjä ei vaihda ikinä sukkia!!111");
3. Data menossa sähköpostiin: spämmin blokkaus, vaihtoehtoja mm. piilokenttä lomakkeella jonka täyttö johtaa hylkäykseen, rivinvaihtojen ja/tai email-otsakkeiden etsiminen viestistä tai äärimmäisenä vetona palikkatesti (tapoja esitelty tekemässäni spämmiturvallisessa lomakekäsittelijässä)

Jaska [19.01.2007 23:05:46]

#

Koodini oli:

if (isset($_GET['expr'])) {
 $expression=$_GET['expr'];
}

Sotkua tuli kun php-koodia muuttujaan työnsin.

Agony [20.01.2007 09:43:30]

#

minkälaista koodia laitoit muuttujaan? Saatko tuolla koodilla esimerkiksi poistettua tiedoston kun laitat GET-jonona expr:lle unlink('index.php');? Jos saat, on php:n asetuksissa jokin tosi pahasti vialla, jos et niin silloin et onnistunut suorittamaan PHP-koodia vaan onnistuit tekemään jotain muuta.

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta