Jump to content
php.lv forumi

Recommended Posts

Posted

Kā 100% pārliecināties, ka augšupielādēts fails tiešām ir bilde, piem., jpeg, png, bmp, nevis php fails ar nosaukumu bilde.jpeg?

Posted

Kā ir ar getimagesize()[2] izmantošanu? Vai ir iespējams, piem., php failu tā modificēt, ka šis izdotu kādu no konstantēm IMAGETYPE_JPEG vai tml.?

Posted (edited)

 

 

Kā ir ar getimagesize()[2] izmantošanu?

Tikai kopš PHP 5.4: http://php.net/manual/en/language.types.array.php#example-102

 

...ka šis izdotu kādu no konstantēm IMAGETYPE_JPEG...

Tā konstante ir integer, tas tev nav enums kā Javā, to var aizstāt ar skaitli un nekas nemainīsies. Kods nekad neizdos konstanti, kods izdos integer, kuru tu salīdzināsi ar doto konstanti (kura pati ir skaitlis).

Šeit ir vērtības: http://www.php.net/manual/en/function.exif-imagetype.php

Edited by jurchiks
Posted

Jā, ir iespējams.

 

http://www.php.net/manual/en/function.getimagesize.php

Lai nepiedirstu error logus: @getimagesize($file)

 

To "@" simbolu vajag aizliegt un no PHP cores izravēt uz visiem laikiem.

 

Nevajag šaut sev kājā jau laicīgi, palaist garām arī E_WARNING, jo tas, ka logā nekrājas notices, ir, protams, ļoti svarīgi, jo logu tu katru dienu lasi un tam ir jābūt tīram no paziņojumiem, ka kāds mēģina kko muhļīt tavai lapai ar nepareiziem failiem.

Posted

Nu bet viņam taču vienkārši vajag pārbaudīt, vai fails ir bilde, un ja nav, tad pofig. Tas warnings neko nemainīs, tikai piedrazos logus.

Pārsvarā tas "@" ir slikta lieta, bet šajā gadījumā, IMHO, pilnīgi pieņemami.

Posted

Šitā:

if ($imagedata['mime']) { return IMAGETYPE_JPEG; }

 

A tev kaut kā traucē, ka logos rakstās? Tu viņus pārlasi katru dienu kā kādus dzejoļu krājumus? Ir daudz vienkāršāk vienreiz nenospiest taustiņu, kaut vai slinkuma pēc, jo ir jāspiež un it kā jāpiedomā līdzi, ko tad tas tagad nozīmē, nekā pēc tam ilgi brīnīties.

Posted (edited)

Šitā:

 

Ģeniāli.

 

Bet ja nopietni. Kā getimagesize()[2] iegūst to integeru? Failā ir kaut kādi baiti, kas nosaka kāda veida info tur glabājas? To nevar apiet?

Pieņemsim arī, ka uz servera php programmas var izpildīt tikai no failiem ar nosaukumu *.php, bet mūs interesē fails ar nosaukumu bilde.jpeg

Edited by hjkl
Posted

Es nezinu vai PHP pasaule ir tādā līmenī, bet tagad visi izmanto Sentry. Check it out!

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...