php mysql insert

Mai nap egy érdekes hibába futottam. Szerintem többeknek ismerős lesz.

$result = mysql_query("INSERT INTO article (
articleID,
title,
type,
date,
content)

VALUES (null,
'$title',
'$type',
NOW(),
'$content')");

Mindössze annyit szerettem volna, hogy egy táblába html formra beírt adatot letárolok. Teszteltem és észrevettem, hogy van egy szöveg amit nem "szeret". mysql_error() szerint olyankor szintax hibát vétek. Hamar rájöttem a szövegben lévő ' (aposztrof) okozza a gondot. Ugyanis annak hatására szegény azt gondolja, hogy ott van vége a szövegnek és ami utána jön már kódként értelmezi ami nyílván szintaktikai hibához vezet.

Ez csak szerintem súlyos? Nyílván ezt kihasználva rosszindulatú emberek akár adatokat is tudnak lopni. Nyílván ha tudom, akkor teszek valamit ellene. Viszont kinek a felelőssége ez? Ha ilyen vagy ehhez hasonló ok baj van akkor a programozót veszik elő, pedig szerintem a nyelv bugyuta.

Hozzászólások

Ez azt hiszem, szemlélet kérdése. Egy nyelv próbálhat kivédeni minden programozói trehányságot, figyelmetlenséget, de sok lehetőségtől is meg leszel fosztva, vagy rád bízza, hogy eldöntsd, hogy az adott eljárás a számodra hogy biztonságos. Pl. futtathatsz egy eval($_GET["akármi"])-t, csak tudnod kell, mi az, és meg akarsz-e bízni a kintről érkező kódban, vagy nem.

"Viszont kinek a felelőssége ez?"
ez elég egyértelmű: a programozóé aki nem készül fel az ilyen eshetőségekre.

.:LISA PHP Framework:.