PHP tarkistus

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?
4231
Äänestä

Muut lukivat myös

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ä.

Äänestä
  • 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.

    Äänestä

  • samuli kirjoitti:

    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("

    Äänestä

  • minä kirjoitti:

    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?

    Äänestä

Kommentoi aloitusta


hakkeri kirjoitti:

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?

Anonyymi
5000

Ilmoita asiaton sisältö

  • Sisältää materiaalia, joka on loukkaavaa, herjaavaa, rasistista, uhkailevaa tai ahdistelevaa.

  • Materiaali sisältää nimiä, yhteystietoja tai muita henkilökohtaisia tietoja. Julkisuuden henkilöistä, julkisissa viroissa toimivista ihmisistä sekä yritysten vastuuhenkilöistä saa keskustella työhön liittyen. Myös yksityiselämään liittyvistä asioista voi keskustella siltä osin, kuin niistä on julkisesti kerrottu.

  • Sisältää lapsille haitallista tai heiltä kiellettyä materiaalia. Seksuaalinen sisältö on sallittua aiheeseen tarkoitetuilla palstoilla, joiden ikäraja on 18 vuotta.

  • Lainvastaista sisältöä voi olla mm. yksityiselämää loukkaavan tiedon levitys, kiihottaminen kansanryhmää vastaan, laiton uhkaaminen, alaikäisiin liittyvä seksuaalinen sisältö/grooming, petokset, identiteettivarkaudet, kunnianloukkaukset ja tekijänoikeusrikkomukset.

  • Sisältö ei liity palstan tai keskusteluketjun aiheeseen.

  • Viesti ei ole suomea tai ruotsia (pl. International Forums), se sisältää mainontaa, se sisältää tekijänoikeuksin suojattua materiaalia, se on massapostitus tai jokin muu syy.

Jaa keskustelu