22. maj 2005 - 20:25Der er
49 kommentarer og 1 løsning
Sikkerhed ved upload ?
hejsa,
Jeg ville lige hvad sikkerheden er ved upload igennem .net platformen. Her tænker jeg på at hvis men har et modul hvor folk kan uploade .pdf filer og tjekker på at Left(file.postedfile.filename, 3) skal være lig med pdf kan folk så ikke bare omdøbe en skadelig .exe fil til .pdf og så uploade filen anyway ?
Findes der noget som rent faktisk tjekker på om indholdet af filen rent faktisk er en .pdf noget si stil med file.postedfile.contenttype ?
I dette særtema om aspekter af AI ser vi på skiftet fra sprogmodeller til AI-agenter, og hvordan virksomheder kan navigere i spændet mellem teknologisk hastighed og behovet for menneskelig kontrol.
Som arne_v skriver. Men derudover vil jeg da gerne påpege at:
1) Selv om det er en malware .exe, .com, .dll (eller anden ekstension) -fil, og den omdøbes til .pdf så kan den ikke efterfølgende afvikles af den grund.
2) Den skulle i givet fald omdøbes tilbage til .exe for at fungere og dette ville kræve at would-be hackeren skal have adgang til at omdøbe filer på serveren.
3) Hvis hackeren er i stand til dette, så er sikkerheden allerede kompromitteret alene af den grund, og så er det lidt lige meget at bekymre sig om en pdf/exe-fil kan omdøbes.
4) Selv hvis det skulle kunne lade sig gøre at omgå punkterne 1-3, så skal filen også eksekveres for at kunne lave sit snavs. Det er ikke nok at filen ligger på serveren. Hvis hackeren kan eksekvere filen, eller han kan lokke andre til at gøre det for sig, så er sikkerheden endnu mere kompromitteret end under punkt 3.
Dim fs As FileStream = New FileStream("C:\z.pdf", FileMode.Open, FileAccess.Read) Dim b(3) As Byte fs.Read(b, 0, b.Length) fs.Close Dim hdr As String = Encoding.Default.GetString(b, 0, b.Length) Dim pdf As Boolean = hdr.Equals("%PDF")
Heller ikke hvis en bruger downloader den omdøbte .exe -> .pdf fil, så ville der ikke være fare for vedkommende med mindre at filen aktivt - af brugeren - blev omdøbt tilbage til .exe.
Jeg vil bare ikke sidde og lave en løsning for en kunde og så lave noget halvt færdigt derfor kan jeg lige så godt tjekke op på det så har jeg mit på det tørre hvis der skulle komme nogte senere hen :o)
arne >> Nu kan jeg se du skriver :
Dim fs As FileStream = New FileStream("C:\z.pdf", FileMode.Open, FileAccess.Read)
Kunne det ikke være :
Dim fs As FileStream = New FileStream(File.PostetFile.Filename, FileMode.Open, FileAccess.Read)
Da jeg jo vil tjekke op på det inden filen uploades ?
Og noget i denne stil hvis jeg laver det som en function ? :
Public Shared Function chkFileByte(ByVal strFile As String) Dim fs As FileStream = New FileStream(strFile, FileMode.Open, FileAccess.Read) Dim b(3) As Byte fs.Read(b, 0, b.Length) fs.Close Dim hdr As String = Encoding.Default.GetString(b, 0, b.Length) Dim pdf As Boolean = hdr.Equals("%PDF") End Function
Jeg synes nu ikke at det fremgik helt klar af spørgsmålet hvem eller hvad det var som skulle beskyttes. Brugerne af sitet blev dog ikke nævnt - andet end i deres aggressive rolle som potentiel hacker.
websam> Hvis du vil beskyttet sitet imod onde hensigter så skulle du helt klar hellere bekymre dig om emner som SQL-injection og cross-site scripting i stedet.
ja det er jeg med på upload > check > slet eller gem :o) Jeg forsøger mig frem og vender tilbage med resultatet :o) og det er File.PostetFile.FileName Eller ?
Public Function chkFileByte(ByVal strFile As ) Dim fs As FileStream = New FileStream(strFile, FileMode.Open, FileAccess.Read) Dim b(3) As Byte fs.Read(b, 0, b.Length) fs.Close() Dim hdr As String = Encoding.Default.GetString(b, 0, b.Length) Dim pdf As Boolean = hdr.Equals("%PDF") Return pdf End Function
Public Function chkFileByte(ByVal fs As Stream) Dim b(3) As Byte fs.Read(b, 0, b.Length) Dim hdr As String = Encoding.Default.GetString(b, 0, b.Length) Dim pdf As Boolean = hdr.Equals("%PDF") Return pdf End Function
du er nødt til at google efter beskrivelser af formaterne og læse dem
Synes godt om
Ny brugerNybegynder
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.