#14923

Les enfants qui meurent de faim remercient Jules, 6 ans, d’avoir fini sa purée — Le Gorafi.fr Gorafi News Network

« C’est un grand pas dans la lutte pour l’éradication de la faim dans le monde qui a été franchi hier soir. Alors que Jules, 6 ans, semblait parti pour ne pas terminer sa purée, il a, dans un ultime effort, redonné espoir à des millions d’enfants à travers le monde. »

Heureusement qu’une armée de cantinière et de parents se sont unis pour combattre la faim dans le monde de cette façon. Merci pour eux.

(et merci aussi pour moi : je me sens moins seul à ne jamais avoir compris le « finis ton assiette car certains n’ont rien à manger ! »)
http://www.legorafi.fr/2016/03/30/les-enfants-qui-meurent-de-faim-remercient-jules-6-ans-davoir-fini-sa-puree/

#14918

Note : rappel PHP

NEVER TRUST USER INPUT

C’est valable pour les formulaires POST et GET mais aussi plein d’autres choses :
– cookies
– variables de sessions
– noms de fichiers uploadés ($_FILES)
– les types de fichiers (dont MIME)
– variables dans le php.ini
– …

Sans oublier des vérifications spéciales dans certains cas : si la chaîne « . » (un simple point) est grammaticalement valable pour un pseudo ou un mot de passe, ça devient très dangereux quand il s’agit d’un nom de fichier (« . » c’est un raccourcis pour dire « dossier courant », comme « .. » signifie « dossier parent »).

Si en PHP vous avez un script pour renommer un fichier, un nouveau nom « . » sera valide pour le htmlspecialchars(). Mais au moment où le serveur transmet la requête « renomme le fichier abc.jpg en "." » au système d’exploitation ou au système de fichier, dans le meilleur des cas ça génère une erreur, dans le pire ça écrase le dossier courant et son contenu (le "." c’est le dossier courant et là on renomme un fichier par dessus).

Et pour supprimer un fichier, pareil : http://lehollandaisvolant.net/tuto/php/#supprimer-un-fichier


Enfin, l’utilisateur est toujours très con quand il s’agit d’utiliser un logiciel. Il fera toujours n’importe quoi, et encore plus si ça permet de faire planter l’ordinateur.
C’est très fatiguant de devoir penser à tout, comme ici avec la gestion du CSV http://sebsauvage.net/wiki/doku.php?id=csv . Heureusement, ici certains l’ont fait.

Si ce n’est pas le cas dans ce que vous faites, je conseille de ne pas avoir peur de faire une application limitée mais qui fonctionne plutôt qu’un truc illimité qui plante, même dans seulement 0,01% des cas : la loi de Murphy ne plante pas elle.

Par exemple, pour gérer les extensions de fichiers, je préfère dresser une liste avec les 20 extensions les plus communes (png, doc, jpg, mp3, apk…) et mettre tout le reste dans « autres », plutôt que d’essayer de détecter l’extension des fichiers (par régex ou autres).

Tôt ou tard, il y aura un urluberlu avec un nom de fichier de 500 caractères, ou avec une extension de 500 caractères, ou sans extensions, ou une extension en unicode, ou une extension en unicode-privé sur une fonte que vous n’avez pas, ou avec des caractères d’échappement.

Afficher 500 caractères ce n’est pas un soucis en soit, mais ça déforme l’affichage si l’absence d’espaces génère un non-retour à la ligne…

Ah et, si votre fichier est envoyé depuis GNU/Linux, il peut contenir des espaces et des caractères unicodes ou de la ponctuation. Windows n’aime pas ça et parfois il refusera d’enregistrer ce fichier au nom bizarre (ça dépend du système de fichier : FAT32 gère ça très mal en tout cas).

Bref, faut avoir une vision d’ensemble des chose : uploader un fichier, c’est pas juste une requête "files", c’est aussi penser à celui qui maintient caps-lock allumé quand il renomme ses photos avec des noms à rallonge sous Windows sur un clavier russe.
http://lehollandaisvolant.net/?mode=links&id=20160331195130

#14916

Maitre Eolas ✏️ sur Twitter

« Interdiction pénale de lire certains sites Web sans bonne foi : le Sénat précise "la bonne foi, c'est la foi chrétienne". C'est plus clair. »
https://twitter.com/Maitre_Eolas/status/715471678764003328