Avatar billede jensen2005 Nybegynder
17. februar 2013 - 08:34 Der er 9 kommentarer og
1 løsning

Sikkerhed: Uploadfunktion på hjemmeside

Hej Eksperter

Jeg har brug for input omkring sikkerhed i forbindelse med en løsning som giver admin lov til at uploade filer til webserveren.

Det er kun admin som har adgang til upload. Han logger på men der bliver ikke gemt cookies med loginoplysninger i hans browser.

Jeg tænker hvad nu hvis der er en ondsindet som får adgang til upload?


Her lidt facts:

1) Brugeren uploader en zip-fil som bliver pakket ud på serveren.

2)Jeg bruger http://www.icsharpcode.net/opensource/sharpziplib/ til at pakke ud

3) Der testes om det er en zip fil. Både på filtypenavn men også via. zip-scan-funktion som er en del af open source produktet

4) Følgene filer får kun lov til at blive pakket ud: .xml, .png, .jpg, .swf, .mp3

5) Maksimum størrelse på zip-fil er 2 mb

6) Zip-filen bliver omdøbt men stien til filerne vil kunne blive fundet et andet sted i løsningen


Her er scriptet jeg bruger til at pakke filer ud med:

public static void DecompressFiles(String ZipPath, String Destination, String Password)
{
    using (ZipInputStream s = new ZipInputStream(File.OpenRead(ZipPath)))
    {
        if (Password != null && Password != String.Empty)
        {
            s.Password = Password;
        }

        ZipEntry entry;
        String tmpEntry = String.Empty;

        while ((entry = s.GetNextEntry()) != null)
        {
            String dirName = Destination;
            String fileName = Path.GetFileName(entry.Name);

            if (dirName != "")
            {
                Directory.CreateDirectory(dirName);
            }

            if (fileName != String.Empty)
            {
                if (entry.Name.IndexOf(".ini") < 0)
                {
                    String FileName = dirName + "\\" + entry.Name;
                    FileName = FileName.Replace("\\ ", "\\");

                    String FolderName = Path.GetDirectoryName(FileName);

                    if (Directory.Exists(FolderName) == false)
                    {
                        Directory.CreateDirectory(FolderName);
                    }

                    if(filetype==true){
FileStream fStream = File.Create(FileName);
                    int StreamSize = 2048;
                    byte[] buffer = new byte[2048];

                    while (true)
                    {
                        StreamSize = s.Read(buffer, 0, buffer.Length);
                        if (StreamSize > 0)
                        {
                            fStream.Write(buffer, 0, StreamSize);
                        }
                        else
                        {
                            break;
                        }
                    }
                    fStream.Close();}
                }
            }
        }
        s.Close();
        File.Delete(ZipPath);
    }
}


Tusinde tak for hjælp

Venlig hilsen
Jensen2005
Avatar billede Blueeyez Mester
17. februar 2013 - 08:54 #1
Hvordan uploader? Hvis ftp så gør så han ikke kan slette filer
Avatar billede jensen2005 Nybegynder
17. februar 2013 - 09:03 #2
Hej Blueeyez

Han uploader via Asp.Net/c#.

<asp:FileUpload ID="FileUpload1" runat="server" />
<asp:Button ID="bt_upload" runat="server" Text="Upload" onclick="bt_upload_Click" />

Venlig hilsen
Jensen2005
Avatar billede arne_v Ekspert
17. februar 2013 - 13:21 #3
Hvis admin er logget ind, saa kan den kode der haandterer upload vel checke paa om han har den noedvendige rolle!?
Avatar billede jensen2005 Nybegynder
17. februar 2013 - 13:29 #4
Hej Arne_v

Ja der bliver tjekket op på om han har den nødvendige rolle.

Jeg tænker på en situation hvor en ondsindet bruger har fået adgang til loginoplysninger til administrationsmodulet?

Venlig hilsen
Jensen2005
Avatar billede arne_v Ekspert
17. februar 2013 - 13:46 #5
Hvis en bruger har logget ind med korrekt brugernavn/password som admin, saa er det meget svaert at vurdere om det er den rigtige admin eller en der har stjaalet brugernavn/password.

Du kan teste paa IP addresse og have en white list.

Du kan checke paa et client certfificate som kun er paa admins PC.

Du kan lave supplerende personlige spoergsmaal.
Avatar billede olebole Juniormester
17. februar 2013 - 16:41 #6
<ole>

Det ville nok være hensigtsmæssigt at kikke på gamle tråde og få lukket de ældste  =)

/mvh
</bole>
Avatar billede jensen2005 Nybegynder
21. februar 2013 - 12:28 #7
Hej arne_v

Tak for input.

Jeg fik webmaster til at oprette en virutal mappe på ISS.

Lig et svar så du kan få dine point

Endnu en gang tak for hjælp.

Venlig hilsen
Jensen2005
Avatar billede jensen2005 Nybegynder
21. februar 2013 - 12:30 #8
Hej olebole

Ja jeg skal have lukket mine gamle tråde. Har bedt dem som har hjulpet mig om at ligge et svar men ingen lagt et svar.

For at lukke et spørgsmål skal man så bare selv svare og give point til sig selv?

Venlig hilsen
Jensen2005
Avatar billede olebole Juniormester
21. februar 2013 - 15:50 #9
Ja, du kan læse om det i Ekspertens FAQ  =)

Det er kotume, at man lige takker de deltagende og evt. lægger løsningen, hvis man fandt én - inden man selv lukker tråden  *o)
Avatar billede arne_v Ekspert
21. februar 2013 - 19:48 #10
svar
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester



Seneste spørgsmål Seneste aktivitet
I dag 06:10 Excel åbner fil i kæmpe format Af Aske i Excel
I går 22:00 Datafordeler Af Lsk i PHP
I går 12:37 Summere beløb pr. dato Af TTA i Excel
31/1022:44 Tilslutte chassic fans Af viking69 i PC
31/1020:28 LED lysstofrør Af ErikHg i Fri debat