Säkra din PHP-kod

  • Det är viktigt att säkerställa säker data från användare (formulär och webbadresser etc) förutom OS-servern och http-servern, främst på grund av webbangrepp.
  • Det finns 3 kategorier för att säkra din php-kod:

Validerar datanvändarna

När webbplatsen erbjuder formulär som gör det möjligt för användare att fånga och skicka innehåll, är det inte tillräckligt att ange formatet för poster (e-postadress, telefonnummer, antal produkter) Servern bör också övervakas (t.ex. PHP) om uppgifterna är konventionell till vår förväntan. Om du tar hänsyn till hela tal, konvertera alla data som skickas av användaren:

Validera data från webbadress eller formulär

Nästan alla mottagna data är från webbadressen eller formulären som webbansvarig har ställt in. Nästan alla URL-visningsparametrar som anges nedan:

/index.php?rub=25

Denna parameter bör dock inte ändras. Men det här är möjligt enligt nedan:

 /index.php?rub=0 /index.php?rub=index.php?rub=aaaaAAAAAaaaa /index.php?rub=1+eller+1 
  • Det är viktigt att kolla om formatet som tas emot via webbadressen eller formuläret förväntas oavsett vilken typ av data som helst.
  • Du kan använda funktionen filter_input () för att verifiera samma.
  • Om du till exempel fått ett e-postmeddelande från en användare från formatposten med fältnamn som e-postadress. Du kan återställa samma genom att:

 $ email = filter_input (INPUT_POST, "email", FILTER_VALIDATE_EMAIL); om ($ email) {// E-postadressen är verkligen ett mailadressformat} 

Denna funktion kan filtrera många saker: IP-adress, URL etc. Det kan vara modifieringar som kodningssträng innan du skickar via URL som process av htmlentities ().

  • Flera filter kan kombineras med "|" .
  • För att validera en IP-adress endast under Ipv4-format:

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

Klicka på följande länk för filter:

//www.php.net/filter

Hoppa över visat innehåll i webbadressen

När innehållet som användaren har angett visas på skärmen innehåller det HTML- eller JavaScript-kod, vilket gör skyddet obligatoriskt.

Om innehållet som ska visas i html: du måste HTMLenkoda inställningen för att konvertera alla tecken i motsvarande HTML-enheter. Nedan är php-funktionen för att automatisera denna process:

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

Om innehållet ska visas i en webbadress: du måste urlänka innehållet.

PHP har två funktioner för att göra detta kodning: urlencode () och rawurlencode (). Skillnaden mellan dessa två funktioner är kodningen av ett område, som i den första funktionen ger och ger% 20 och "+" i den andra.

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

Om innehållet ska lagras i en databas: det är nödvändigt att undvika alla tecken med en viss roll i den databasserver som används. För PHP och MySQL, gör funktionen mysql_escape_string () alla potentiellt skadliga tecken i strängen som passerat som parameter.

 $ query = 'VÄLJ ID FROM matable WHERE user = "'. mysql_escape_string ($ _ REQUEST ['användare']). '' '; 

Observera att servern är konfigurerad med PHP-alternativ magic_quotes, data som överförs av användare skyddas automatiskt med backslashes (backslash). För att skydda mysql_escape_string måste du "ångra" detta grundläggande skydd:

 $ query = 'VÄLJ ID FROM mytable WHERE user = "'. stripslashes (mysql_escape_string ($ _ REQUEST ['användare'])). '' '; 
Tidigare Artikel Nästa Artikel

Bästa Tipsen