PHP/SQL vieraskirja, viestistä pitäisi poistaa kaikki ylimääräinen.
Onko joku parempi tapa kuin tämä:
$data = strip_tags($data);
$data = htmlspecialchars($data);
$data = stripslashes($data);
$data = trim($data);
Ynohdinko poistaa vielä jotain?
Ehkä nämä?
$data = pg_escape_string($data);
$data = mysql_escape_string($data);
Voiko tämä kaikki toteuttaa jotenkin fiksusti?
Onko joku parempi tapa kuin tämä:
$data = strip_tags($data);
$data = htmlspecialchars($data);
$data = stripslashes($data);
$data = trim($data);
Ynohdinko poistaa vielä jotain?
Ehkä nämä?
$data = pg_escape_string($data);
$data = mysql_escape_string($data);
Voiko tämä kaikki toteuttaa jotenkin fiksusti?
Vastaukset 4
Vanhimmat
mut miksi viestistä pitää poistaa esim tagit?
Jos ymmärrän oikein, tuntematta php:tä syvällisemmin, niin esim strip_tags poistaa ja -tagit. Niitähän tarvitaan esim osoitteiden ja taulukoiden esittämisessä.
koska ilkeä käyttäjä voi laittaa viestiin yhden ylimääräisen tai tagin ja koko layot menee sekaisiin.
Samoin mitä tapahtuu jos tämä ilkeä käyttäjä laittaa viestin sisällöksi javascriptin joka avaa tuhat popuppia?
Kaikki ylimääräinen pitää aina poistaa, eikä saa unohtaa nimi, email, jne.. kentät.
höpö höpö. periaatteessa mitään ei tarvitse poistaa. riittää että muutat merkit < ja > ascii koodiksi.
jos joku ilkeä käyttäjä aikoo kirjoittaa jotain ilkeää, niin viestissä näkyy itse koodi tekstinä, koska selain ei tunnistä sitä käskyä koska ei ole merkkejä < ja >.
tähän operatioon käsky $viesti = str_replace("
SQL koodit, mitä jos käyttä antaa tunnuksen tai salasanan tilalle SQL koodin, missä on OR null, tai vastaava?