Sikre din PHP kode

  • Det er afgørende at sikre sikre data fra brugere (formularer og webadresser osv.) Bortset fra OS-serveren og http-serveren hovedsagelig på grund af webangreb.
  • Der er 3 kategorier for at sikre din php-kode:

Validering af data brugerne

Når webstedet tilbyder formularer, der giver brugerne mulighed for at indfange og sende indhold, er dette ikke tilstrækkeligt til at angive formatet for indgange (e-mail-adresse, telefonnummer, mængde af produkter) Serveren skal også overvåges (f.eks. PHP), hvis dataene er konventionelle til vores forventning. Med hensyn til hele tal skal du konvertere alle de data, der sendes af brugeren:

Valider data fra URL eller Forms

Næsten alle modtagne data er fra den webadresse eller formularer, som webmaster har oprettet. Næsten alle URL-displayparametre, der specificerer som nedenfor:

/index.php?rub=25

Denne parameter skal dog ikke ændres. Men det er muligt som nedenfor:

 /index.php?rub=0 /index.php?rub=/index.php?rub=aaaaAAAAAaaaa /index.php?rub=1+or+1 
  • Det er afgørende at tjekke, om formatet, der modtages via webadressen eller formularen, forventes uanset typer af data.
  • Du kan bruge funktionen filter_input () til at verificere det samme.
  • For eksempel, hvis du har modtaget en email fra en bruger fra formatpostet med feltnavn som e-mail. Du kan gendanne det samme ved at:

 $ email = filter_input (INPUT_POST, 'email', FILTER_VALIDATE_EMAIL); hvis ($ email) {// Indtastningen af ​​e-mail-adressen er faktisk et mailadresse format} 

Denne funktion kan filtrere mange ting: IP-adresse, URL osv. Der kan være ændringer som kodningstreng, før du sender via URL som proces ved htmlentities ().

  • Flere filtre kan kombineres ved hjælp af "|" .
  • Sådan valideres kun en ip-adresse under Ipv4-format:

$ ip = filter_input (INPUT_GET, 'ip', FILTER_VALIDATE_IP | FILTER_FLAG_IPV4);

Klik på følgende link for filtre:

//www.php.net/filter

Spring over vist indhold af webadressen

Når indholdet indtastet af brugeren vises på skærmen, indeholder det HTML- eller JavaScript-kode, der gør beskyttelsen obligatorisk.

Hvis indholdet der skal vises i html: Du skal HTMLenkode indstillingen for at konvertere alle tegn i tilsvarende HTML-enheder. Nedenfor er php-funktionen til at automatisere denne proces:

ekko htmlentities ($ _ REQUEST ['content']);

Hvis indholdet skal vises i en webadresse: du skal urlenkode indholdet.

PHP har to funktioner til at gøre dette kodning: urlencode () og rawurlencode (). Forskellen mellem disse to funktioner er kodningen af ​​et område, som i den første funktion giver og giver% 20 og "+" i det andet.

 ekko '//www.website?valeur='.urlencode($_REQUEST['value']); 

Hvis indholdet skal gemmes i en database: Det er nødvendigt at undslippe alle tegn med en bestemt rolle i den anvendte databaseserver. For PHP og MySQL, gør funktionen mysql_escape_string () alle potentielt skadelige tegn i strengen, der er bestået som parameter.

 $ query = 'SELECT id FRA matable WHERE user = "'. mysql_escape_string ($ _ ANMODNING ['bruger']). '' '; 

Bemærk, at serveren er konfigureret med PHP-option magic_quotes, data, der overføres af brugerne, beskyttes automatisk med backslashes (backslash). For at beskytte mysql_escape_string skal du derfor "fortryde" denne grundlæggende beskyttelse:

 $ query = 'SELECT id FROM mytable WHERE user = "'. stripslashes (mysql_escape_string ($ _ ANMODNING ['bruger'])). '' '; 
Forrige Artikel Næste Artikel

Top Tips