WN

WN (https://www.wn.se/forum/index.php)
-   Serversidans teknologier (https://www.wn.se/forum/forumdisplay.php?f=4)
-   -   Säkerhet vid uppladdning av filer (https://www.wn.se/forum/showthread.php?t=1046086)

Jim_Westergren 2011-01-24 13:44

Säkerhet vid uppladdning av filer
 
Jag ska koda filuppladdning för mina användare på N.nu.

Det grundläggande är inga problem:

- checka filändelse
- checka mime typ
- checka filstorlek
- checka filnamn
- checka referrer
- kräva inloggning för att ladda upp

Räcker detta? Filerna kan ju ändå ha virus utan att jag kan kolla det. Men om jag kräver uppgraderat konto för att ladda upp så kommer jag nog runt det.

Jag har funderat att lägga filuppladdningen på en helt annan domän och annan server så att det inte kan störa innehållet på N.nu på något sätt, är det en bra tanke?

b_andersson 2011-01-24 13:53

Citat:

Ursprungligen postat av Jim_Westergren (Inlägg 20389434)
Räcker detta? Filerna kan ju ändå ha virus utan att jag kan kolla det.

Angående virus så kan du ju alltid kolla filerna med ClamAV innan de läggs upp.

studiox 2011-01-24 16:20

Jag skulle ju inte bry mig så mycket om mine-typ, min egen erfarenhet bara.

Filtyp kan ju vara bättre att kolla i filsystemet, att ändelsen är rätt är ju trevligt, men någon kan ju ladda upp en php fil som .jpg om dom nu känner för det. Exempelvis finfo_file

pelmered 2011-01-25 17:04

Mime-typ och filändelse är inte så tillförlitligt och inte någon garanti för något.

Jag antar att man är ganska säker så länge man inte includar filerna på något sätt på din sida utan endast använder de som bilder etc i din HTML-kod.
Om det bara rör sig om bilder kan rendera om bilden med GD eller imagick för att vara helt säker på att det bara är bilder som sparas på servern. Är det inte bilder tror jag inte att filen kan gå igen om det på något sätt.

abergman 2011-01-25 19:33

Se till att filerna inte kan exekveras, sen kan du ju för din egen skull scanna igenom dem efter virus, ingen vill ha en mapp full med virus:)

danjel 2011-01-26 13:59

Citat:

Ursprungligen postat av Jim_Westergren (Inlägg 20389434)
Jag har funderat att lägga filuppladdningen på en helt annan domän och annan server så att det inte kan störa innehållet på N.nu på något sätt, är det en bra tanke?

Ja om det går, speciellt att flytta uppladda filer till en statisk server som inte kör php.

Tänk även på att det går att göra en fil som både är en bild och php skript samtidigt,
så eventuella checkar med t.ex "imagefilesize" med GD är alltså inte helt säkert.

Det viktigaste för filuppladdning är att användarna inte kan nå en uppladdad fil via en url.
Så att lägga filen utanför wwwroot eller blockera åtkomst till upload katalogen är bra..
Att även skapa ett slumpat namn på fil och tex spara namnet i en databas är bra,
detta samtidigt som man levererar bildfilen till webbläsaren med php.
<img src="bild.php?id=1">
På så vis kan man inte exekvera eventuell php kod i en bild fil eller göra file inclusion attacker..

Jim_Westergren 2011-03-08 11:42

Jag har nu löst detta och implementerat uppladdning av filer. För att kunna ha hög säkerhet så laddas filerna inte upp på min server utan jag skickar de till Amazon S3 istället. Funkar väldigt bra och kan dessutom skalas rejält. Rekommenderas.

tartareandesire 2011-03-08 11:47

Citat:

Ursprungligen postat av Jim_Westergren (Inlägg 20396689)
Jag har nu löst detta och implementerat uppladdning av filer. För att kunna ha hög säkerhet så laddas filerna inte upp på min server utan jag skickar de till Amazon S3 istället. Funkar väldigt bra och kan dessutom skalas rejält. Rekommenderas.

Hur förändras juridiken då? Gör det någon skillnad?

Jim_Westergren 2011-03-08 12:01

Antar väl att jag/mitt bolag ansvarar inför Amazon S3. Dvs jag får se till att jag följer deras policy.

I sin tur ansvarar mina användare inför N.nu med dess policy vilket är rätt strikta. Vid uppladdning av en fil måste till exempel användaren garantera att det är han som är upphovsmannen eller att han har tillåtelse av upphovsmannen.

Filer som rapporteras raderas efter kontroll.

Rent juridiskt vet i tusan vilket lands lagar som gäller.


Alla tider är GMT +2. Klockan är nu 14:11.

Programvara från: vBulletin® Version 3.8.2
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson