Säkerhetsfråga om PHP, MySQL & Apache

Tråden skapades och har fått 4 svar. Det senaste inlägget skrevs .
1
  • Medlem
  • Höganäs
  • 2003-05-05 21:15

Hur säker är en lösning med PHP/MySQL/Apache rullandes på Linux eller OS X?

Jag använder mig av sessions i PHP 4.3 och undrar hur lätt det är för någon att olovligt gå in och se eller ändra uppgifter i databasen efter att användaren loggat ut. (Sessionen avslutad)

Hur kan man hindra att trafiken "avlyssnas"?
Har PHP någon inbyggd funktion liknande https, eller ???

Som den som är insatt i detta förstår är jag inte det

Tacksam för hjälp!

  • Medlem
  • Höganäs
  • 2003-05-05 23:21

Ingen?

  • Medlem
  • Stockholm
  • 2003-05-05 23:47

Problemet med avlyssnad trafik har ju alla webbapplikationer som kör vanlig http. Krypterad trafik i form av https finns inte i php, utan fixas så vitt jag vet med Apache och OpenSSL (och kan användas i kombination med php). Tror inte att det är så svårt att sätta upp, men om man behöver ett riktigt certifikat så är det nog knepigare.

En annan säkerhetsrisk är känslig information som sparas i filer på servern. Tänk dig exempelvis lösenordet till din MySQL-databas. Det måste ju finnas tillgängligt någonstans för att php ska kunna ansluta till databasen. Det bästa är om du har root-behörighet på servern så att du kan sätta rättigheterna på lösenordsfilen så att den ägs av webbservern och bara kan läsas av denna.

Om du använder ett webbhotell går ju inte det, utan alla dina filer måste ägas av dig, och alla php-filer måste vara läsbara av alla (chmod 644) för att webbservern ska kunna visa dem.

cgi-script körs dock ofta med det egna användarkontot, så en lösning kan faktiskt vara att låta ett script köras som cgi. Man gör det genom att ändra filändelsen från php till cgi och lägga till sökvägen till php överst i filen. Såhär:

#!/usr/local/bin/php

<?php
$password = "vadsomhelst";
?>

Sen är det bara att göra chmod 700 på filen så kan ingen läsa den. Varning dock för att det här scriptet kommer att gå mycket långsammare att köra än vanlig php.

  • Medlem
  • Höganäs
  • 2003-05-06 11:18

Hmm.
Alltså är det en fördel att ha tillgång till servern för att kunna styra behörighet själv. (?)

Kan sessions annars räknas som en säker metod för autenticering?

Kan https användas för att köra PHP-kod (kanske dum fråga...) ?

Bra länktips om PHP och säkerhet?

/M

  • Medlem
  • Stockholm
  • 2003-05-06 12:19
Citat:

Skrevs ursprungligen av Micke F
Hmm.
Alltså är det en fördel att ha tillgång till servern för att kunna styra behörighet själv. (?)

Japp. Det bästa är om du är den enda som använder servern (och har root-behörighet).

Citat:

Kan sessions annars räknas som en säker metod för autenticering?

All information som sparas som session-variabler lagras i klartext i session-filer på servern. Det är inte omöjligt (men nog rätt krångligt) för en annan användare på servern att läsa dessa filer. Men frågan är om det finns några bättre alternativ...

Citat:

Kan https användas för att köra PHP-kod (kanske dum fråga...) ?

Via https kan man transportera samma information som via http, så php funkar precis som vanligt skulle jag tro.

Citat:

Bra länktips om PHP och säkerhet?

Känner nog bara till en på rak arm: Kapitel 5: Säkerhet ur PHP-manualen.

När vi ändå talar om säkerhet kan jag bara nämna att det är viktigt att validera all information som användaren skickar. Först och främst att den kommer från rätt håll ($_GET, $_POST, $_COOKIE osv), men också att den inte innehåller ovälkommen kod eller liknande.

1
Bevaka tråden