Toon posts:

[asp.net] plaatje uploaden + security

Pagina: 1
Acties:
  • 42 views sinds 30-01-2008

Verwijderd

Topicstarter
Ik ben in het admin gedeelte van een website bezig met een upload mogelijkheid van produkt plaatjes.

Ik gebruik de volgende code:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
 Not (myFile.PostedFile Is Nothing) Then
    Dim intFileLength as Integer
    Dim ImgFileNamePath as String
    Dim ImgFileName as String
    
    ' Set some limitiations for uploader file and filesize 
    if myFile.PostedFile.ContentType <> "image/pjpeg" then
        response.write("<font size=2 color=Red><b>This is not a Valid " & _
        "image/pjpeg ContentType.</b></font>")
    else
        if myFile.PostedFile.ContentLength > 50000 then
            response.write("<font size=2 color=Red><b>FileSize is too big.</b></font>")
        else 
            ' save to harddisk on webserver
            ImgFileNamePath = myFile.PostedFile.FileName
            ImgFileName = System.IO.Path.GetFileName(ImgFileNamePath)
            
            ' configure your path to save to here 
            myFile.PostedFile.SaveAs("c:\www\admin\images\temp\" & ImgFileName)
            response.write ("File Upload Success.<br>Content type: " & myFile.PostedFile.ContentType & "" & _
            "<br>File size: " & CStr(myFile.PostedFile.ContentLength) & " bytes" & _
            "<br>File name: " & ImgFileName & "<br>[img]"""[/img]")
            
        End If
    End If
else
    response.write("Selecteer een afbeelding.")
End If


Deze code werkt opzich prima op mijn ontwikkel machine, maar op de "live" server heb ik wat ruzie met de security settings.

Ik heb op de live machine het aspnet account schrijf rechten (zijn ook zijn enige rechten) gegeven op de c:\www\admin\images\temp\ folder.
op de bovenliggende folders zijn de permissies als volgt ingesteld, administrator full control en everyone alleen read.

Als ik wil uploaden krijg ik de volgende melding:
code:
1
2
3
4
5
6
Access to the path "c:\www\admin\images\temp\eenplaatje.jpg" is denied. 

The ASP.NET process is not authorized to access the requested resource. For 
security reasons the default ASP.NET process identity is '{machinename}\ASPNET', 
which has limited privileges. Consider granting access rights to the resource to the
ASP.NET process identity.


Dit zou met de huidige security instellingen toch gewoon moeten werken?
En ik vroeg me tevens af of deze manier veilig is, zodat niet iemand van buitenaf onze temp folder kan misbruiken voor andere doeleinden.

[ Voor 10% gewijzigd door Verwijderd op 17-01-2003 11:46 ]


  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 25-08 12:28

Janoz

Moderator Devschuur®

!litemod

Met \temp wordt meestal wat anders bedoeld dan \www\admin\images\temp\. Weet je zeker dat je het over de juiste directory hebt?

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'


Verwijderd

Topicstarter
sorry met de "\temp" bedoel ik ook de volledige "c:\www\admin\images\temp\" zal het even aanpassen

  • Woy
  • Registratie: April 2000
  • Niet online

Woy

Moderator Devschuur®
Als ik jou was zou ik eens proberen om de gewone IUSR ook rechten te geven op de directory. Ik heb het op mijn werk namelijk ook een keer gehad en het bleek dat de directory permisions niet op de aspnet user nodig waren maar bij de IUSR? ik snap ook niet waarom maar nadat ik deze user rechten had gegeven deed hij het opeens wel

“Build a man a fire, and he'll be warm for a day. Set a man on fire, and he'll be warm for the rest of his life.”


  • syllaz
  • Registratie: Mei 2002
  • Laatst online: 20-04 17:01
Je moet volgens mij net als met traditioneel ASP de IUSR write rechten toekennen in je IIS. Hoeft alleen als je gaat uploaden (filesystem object geloof ik).

  • Woy
  • Registratie: April 2000
  • Niet online

Woy

Moderator Devschuur®
syllaz schreef op 17 januari 2003 @ 14:36:
Je moet volgens mij net als met traditioneel ASP de IUSR write rechten toekennen in je IIS. Hoeft alleen als je gaat uploaden (filesystem object geloof ik).
Ja bij mij bleek dit dus ook de oplossing te zijn alleen ik vindt het wel vreemd want in alle documentatie die je leest staat dat alles onder het ASPNET account draait. Dus dan lijkt het me ook dat het deze user is die rechten moet hebben om op de schijf te schrijven.

“Build a man a fire, and he'll be warm for a day. Set a man on fire, and he'll be warm for the rest of his life.”


  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 25-08 13:24

gorgi_19

Kruimeltjes zijn weer op :9

* gorgi_19 snapt het probleem niet... Dit is een van de meest duidelijke foutmeldingen uit ASP.Net
For security reasons the default ASP.NET process identity is '{machinename}\ASPNET',
which has limited privileges. Consider granting access rights to the resource to the
ASP.NET process identity.
Dit zou met de huidige security instellingen toch gewoon moeten werken?
En ik vroeg me tevens af of deze manier veilig is, zodat niet iemand van buitenaf onze temp folder kan misbruiken voor andere doeleinden.
Instellen dat in een folder, waarin het ASP + ASP.Net-account schrijfrechten heeft, geen executerechten + leesrechten heeft.

[ Voor 37% gewijzigd door gorgi_19 op 17-01-2003 19:05 ]

Digitaal onderwijsmateriaal, leermateriaal voor hbo


  • D2k
  • Registratie: Januari 2001
  • Laatst online: 09-01 11:25

D2k

^^^^

Doet iets met Cloud (MS/IBM)

Pagina: 1

Dit topic is gesloten.