Bonjour,

Actuellement sur une application visant à stocker des informations sensibles comme des passports / Carte d'identité par le bias d'un portail d'upload de fichier je stock ça dans mon /public/uploads mais je pense pas que ça soit la meilleur des techniques niveaux sécurité

Je doit crypter mon entrée en DB ? au lieu de stocker passport.jpg stocker la clé cryptée ?

Je doit stocker cela dans /public ou dans un autre dossier ? Si dans un autre dossier comment l'application Symfony peut y accéder ?

Merci beaucoup pour vos réponses d'avance très bonne journée à vous :)

5 réponses


Perso sous Laravel les répertoires comme ça sont innaccessibles par défaut, on peut pas les lister. Mais oui ce sont des données sensibles, perso je pencherai pour plusieurs trucs :

  • vérifier les droits d'accès au répertoire sur le serveur
  • changer pourquoi pas les noms des répertoires
  • crypter les noms et pourquoi pas les lier aux fichiers, comme il semble que tu dises
  • en tous les cas dans la logique du code vérifier que la personne en question a bien le droit d'afficher le fichier en question (identification etc).
  • bannir des plages d'IP réputées comme maleveillantes
  • dégager les crawlers de certains répertoires
  • surveiller les logs des serveurs pour voir les requetes bizarres

Je pense pas t'avoir beaucoup aidé mais c'est un sujet intéressant voilà ma modeste contribution.

P2P
Auteur

Merci pour ta réponse :)

Actuellement pour le téléchargement ou le visionnage de l'image j'utilise uniquement un <a> avec un href direct vers exemple /public/uploads/file.jpg si je met un .htaccess dans le dossier /uploads en désactivant le listage comment je fait dans l'application pour récupérer mes documents vision et download ?

Mmmmh pour les truc sensibles je les stockerais sur S3 et pas directement dans le projet, ensuite regardes les private signed routes

P2P
Auteur

Merci pour ta réponse mais je trouve rien sur le net pour les private signed routes sous Symfony

Hello,

Perso je ne ferai pas confiance à S3, Amazone n'est pas vraimment un exemple au niveau des données personnels de plus comme c'est stocké via un fournisseur Américain il tombe directement sur leurs lois fachiste ...

Essai de regarder le Bundle suivant
ambta/DoctrineEncryptBundle

il est capable d'encrypter de décrypter les données en BDD assez facilement.
Il faut juste indiquer dans tes Entity les valeurs à encrypter