[TYPO3-UG Dutch] value waarde in formulier

Leen Strijk leenstrijk at tomaatnet.nl
Tue Nov 27 15:57:41 CET 2007


Had ik inderdaad nog niet in IE geprobeerd.
exif_imagetype() gaat het worden.
Bedankt voor deze belangrijke tip.

gr Leen

Patrick Broens schreef:
> Leen Strijk wrote:
>> Hoi Patrick,
>>
>> Ik heb de volgende controles:
>> De ge-uploadde bestanden hebben 644 als rechten. iedereen lezen en 
>> owner schrijven dus.
>> Ook deze controle bij submit
>> if ($_FILES['logo']['name']){
>>     if ($_FILES['logo']['size'] > 50000){
>>     $error = TRUE;
>>     $logoError = '<font color="red">'.htmlspecialchars(              
>> $this->pi_getLL('logo_size_error')).'</font>';
>>     }
>>     if (!ereg('image/jpeg|image/gif',$_FILES['logo']['type'])){
> Dit is de mime afkomstig van de client en is dus te faken. Hier kun je 
> dus andere bestanden mee uploaden. Server side check is aan te raden. 
> Heb je dit al getest in IE7, want bijna geen JPEG zal aankomen. Voor IE7 
> is dit namelijk image/pjpeg. En wat dacht je van image/jpg?
>>     $error = TRUE;
>>     $logoError = $logoError.'<br > <font                
>> color="red">'.htmlspecialchars($this->pi_getLL('logo_type_error')).'</font>'; 
>>
>>     }
>> }
>> Als het nog beter kan hoor ik het graag.
> Als je alleen images gebruikt, dan kan ik de php functie 
> exif_imagetype() aanbevelen, onderdeel van libexif (exif extension).
>>
>> Een en ander wat je schrijft had ik min of meer al een beetje 
>> begrepen, en ben daarom nu bezig om de file uploads middels een popup 
>> scherm te doen.
>> In het formulier kan ik dan laten zien of en welk bestand al aanwezig 
>> is. Dat kon ik al eerder maar als je dan een update uitvoerde was je 
>> de waarde in logo kwijt. Omdat ik ook controleer of er al een bestand 
>> met dezelfde naam is krijg je hem daarna niet meer in de database. Dan 
>> moet het bestand eerst verwijderd worden.
>>
>> groeten Leen
>>
>>
>>
>> Patrick Broens schreef:
>>> Leen,
>>>
>>> Als ik het goed begrijp wil je de inhoud van de database terug in het 
>>> formulier laten komen en werkt dit niet voor input type="file". Dat 
>>> klopt, want dat kan niet. Als een gebruiker naar een bestand zoekt om 
>>> deze te uploaden, dan zoekt hij/zij in het locale bestandssysteem. 
>>> Hiervan weet jij de waarde niet, simpelweg omdat die niet wordt 
>>> doorgestuurd (veiligheid). Het haalt dan ook niets uit om de waarde 
>>> uit de database in dit veld terug te plaatsen.
>>>
>>> Voor het geval dat iemand begint te roepen: Dit kan wel. In sommige 
>>> browsers kan het inderdaad met javascript, maar niet iedere browser 
>>> laat dit toe. Officieel hoort dit een read-only waarde te zijn. 
>>> Iedere browser die dit wel toelaat zou onmiddelijk op de brandstapel 
>>> moeten, want dan praat je over een major security hole.
>>>
>>> Wat ik vaak doe bij een uploadveld is een link plaatsen naar het 
>>> vorige bestand dat is geupload, of in het geval van een afbeelding, 
>>> de afbeelding erbij plaatsen als thumbnail. Dan weet de gebruiker in 
>>> ieder geval wat hij/zij heeft geupload.
>>>
>>> En dan nog even een zijdelingse opmerking: File uploads kunnen erg 
>>> gevaarlijk zijn. Hier dien je dan ook alle beveiliging op los te 
>>> laten die er maar voorhanden is. Dat begint bij de controle van het 
>>> mime-type (server side, niet de mime type die door de client wordt 
>>> verstuurd, want die kan gefaked zijn), en alles wat je maar kunt 
>>> bedenken. Ook de directory waar uiteindelijk de upload terecht komt 
>>> dient goed beveiligd te zijn. Stel dat ik middels jouw script een php 
>>> file kan uploaden, vervolgens weet waar het staat en het ook nog kan 
>>> uitvoeren, dan begrijp je waar ik het over heb.
>>>
>>> Nooit dus blindelings elk geuploade bestand accepteren.
>>>
>>> Patrick
>>>
>>> Leen Strijk wrote:
>>>> Hoi,
>>>>
>>>> Ik heb er nog eens over nagedacht maar misschien is het beter om de 
>>>> bestanden niet via een file veld in het formulier te doen maar in 
>>>> een popup window met een fileupload formulier.
>>>>
>>>> gr Leen
>>>>
>>>>
>>>> Leen Strijk schreef:
>>>>> Hallo,
>>>>>
>>>>> In mijn extensie heb ik een formulier gemaakt.
>>>>> Een van de velden is een file upload veld
>>>>>
>>>>> Nu heb ik ook een gedeelte wat een databaserecord ophaalt en in de 
>>>>> formuliervelden zet met behulp van value="waarde uit de db"
>>>>> Hiermee kan je een record aanpassen.
>>>>>
>>>>> Dit werkt allemaal goed behalve met de file velden.
>>>>> De waardes komen niet in de velden.
>>>>> Dat is ook zo bij de controle. Als er een fout is geeft hij het 
>>>>> formulier terug met eventuele foutmeldingen.
>>>>> Als bijv de postcode fout is zou ik graag willen dat de file die ik 
>>>>> wil uploaden onthouden wordt. Kan dat?
>>>>>
>>>>> gr Leen
>>>>
>>



More information about the TYPO3-UG-dutch mailing list