Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: Merkkijonon turvallinen tallentaminen

reca [07.05.2008 12:37:14]

#

Mietin ja pähkäilin merkkijonon turvallista
tallentamista. Päädyin omalta kohdaltani
seuraavanlaiseen muokkaamiseen:

<?php
function str2safe($str)
	{
		return trim(htmlentities(addslashes(strip_tags($str))));
	}
?>

Kyseisen sekasotkun voi purkaa seuraavalla:

<?php
function safe2screen($str)
	{
		return html_entity_decode(stripslashes($str));
	}
?>

Eli ensimmäisen funktion läpi vedetty merkkijono
voidaan tallentaa ja jo olemassa oleva merkkijono
vedetään toisen funtion läpi ennen ruudulle
tulostamista.

Mitä mieltä olette? Mitä en ole ottanut
huomioon? Mitä voisi parantaa?

edit: Selvennystä asiaan ja korjaus koodiin

Blaze [07.05.2008 12:50:49]

#

reca kirjoitti:

Mietin ja pähkäilin merkkijonon turvallista
tallentamista.

Tallentamista mihin?

reca [07.05.2008 12:54:44]

#

Lähtökohtana tallennus tiedostoon, mutta ei kai
tuosta ole haittaa tietokantaankaan tallennettaessa.

Blaze [07.05.2008 13:12:06]

#

reca kirjoitti:

Lähtökohtana tallennus tiedostoon

Jos tallennat useamman asian samaan tiedostoon, tyyliin "nimi|ikä|paino", jolloin pystyviivan esiintyminen jossain tiedoista sotkisi tiedoston, pitää datassa esiintyvät pystyviivat korvata jollain muulla, mutta esimerkiksi HTML:ää tai hipsuja ei tarvitse eskapoida.

reca kirjoitti:

tietokantaankaan tallennettaessa.

Kantaan tallentaessa taas tarvitsee siivota (vain) SQL-lauseiden erikoismerkit, mihin on valmis funktio

Tulostaessa dataa näytölle (HTML-dokumenttiin), tarvitsee se ajaa htmlspecialchars() ja mahdollisesti (palvelimen asetuksista riippuen) stripslashes() -funktioiden läpi.

reca [07.05.2008 18:42:21]

#

Tallennan tiedostoihin yleensä käyttäen php-tiedostoja,
joissa tieto on tallennettu muuttujiin:

<?php
$nimi='nimi';
?>

Edellämainitussa tilanteessa slasheja voi tarvita
Blazen esimerkkiä enemmän.

Tietokannan valmiista funktiosta en ollut tietoinen :-).

Vastaus

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

Tietoa sivustosta