Användarinskickade data

Från Wiki.linux.se
Version från den 1 september 2024 kl. 07.52 av Admin (diskussion | bidrag) (→‎Sidslut)
(skillnad) ← Äldre version | Nuvarande version (skillnad) | Nyare version → (skillnad)
Hoppa till navigering Hoppa till sök

Användarinmatad Data

Den största svagheten i många PHP-program ligger inte i själva språket, utan snarare i att koden inte är skriven med säkerhet i åtanke. Av denna anledning bör du alltid ta dig tid att överväga konsekvenserna av en given kod och fastställa den möjliga skadan om en oväntad variabel skickas in.

Exempel #1 Farlig Variabelanvändning

<?php
// ta bort en fil från användarens hemkatalog... eller kanske
// någon annans?
unlink ($evil_var);

// Logga deras åtkomst... eller kanske en /etc/passwd post?
fwrite ($fp, $evil_var);

// Utför något trivialt.. eller rm -rf *?
system ($evil_var);
exec ($evil_var);
?>

Du bör alltid noggrant granska din kod för att säkerställa att alla variabler som skickas från en webbläsare kontrolleras ordentligt, och ställa dig följande frågor:

  • Kommer detta skript endast att påverka de avsedda filerna?
  • Kan ovanliga eller oönskade data påverkas?
  • Kan detta skript användas på oavsiktliga sätt?
  • Kan detta användas i kombination med andra skript på ett negativt sätt?
  • Kommer några transaktioner att loggas tillräckligt?

Genom att ställa dessa frågor när du skriver skriptet, snarare än senare, förhindrar du ett olyckligt omskrivande när du behöver öka din säkerhet. Genom att börja med detta tankesätt garanterar du inte säkerheten i ditt system, men du kan hjälpa till att förbättra den.

Du kan också överväga att stänga av `register_globals`, `magic_quotes` eller andra bekvämlighetsinställningar som kan förvirra dig om giltigheten, källan eller värdet av en given variabel. Att arbeta med PHP i `error_reporting(E_ALL)`-läge kan också hjälpa dig att varna om variabler används innan de kontrolleras eller initieras (så att du kan förhindra att ovanliga data bearbetas).


Sidslut

Orginalhemsidan på Engelska :https://www.php.net/manual/en/security.variables.php
PHP
Säkerhet


Det här är en maskinöversättning av PHP-manualen till svenska. Om du hittar fel är vi tacksamma om du rapporterar dem via formuläret som finns på https://www.linux.se/kontaka-linux-se/

Tack till Datorhjälp.se som har sponsrat Linux.se med webserver.