2009-09-17 10 views
2

Je dois générer environ 18 000 PDF contenant des informations sensibles. Les fichiers PDF seront servis via une application Web pour les utilisateurs finaux. Évidemment, certains utilisateurs ont besoin de voir plus de rapports que d'autres. Les deux façons dont je pense à servir les fichiers PDF sont physiquement enregistrer chaque fichier PDF dans un répertoire sous l'application Web ou en stockant le fichier PDF dans la base de données. Les fichiers PDF doivent être visibles uniquement par ceux autorisés et je ne veux pas que les utilisateurs devinent les URL pour voir les informations des autres utilisateurs. Mais je suis un peu hésitant à mettre cette information dans une base de données.PDF sécurisés générés

Une voie est-elle préférée à l'autre?

Répondre

6

Un PDF dans la base de données n'est pas plus sûr qu'un PDF sur le disque lorsque les deux sont servis sur le même site Web. À moins que vous n'autorisiez votre serveur Web à traiter les demandes pour le PDF comme n'importe quelle ressource sur disque. Ce qui, dans votre cas, serait une mauvaise idée.

J'ai travaillé sur un projet avec des exigences similaires. Nos documents sont stockés sur disque (non accessibles directement via l'URL du site Web), et leurs emplacements et informations de sécurité sont stockés dans une base de données. Quand une requête arrive pour un document, je détermine si l'utilisateur a des droits sur le document (requêtes à la base de données) et si c'est le cas, j'obtiens l'emplacement du fichier et le livre directement sur le flux de réponse.

+0

Assurez-vous également d'activer les options «pas d'enregistrement» et «pas d'impression» lors de la génération des fichiers PDF. –

+0

Vous savez que ces options ne sont que des suggestions? –

+0

Oui, n'importe qui peut faire un clic droit sur le lien qui délivre le pdf (ou construire une URL) et l'enregistrer directement sur le disque. Et vous pouvez imprimer tout ce que vous pouvez voir (voir: outil de coupure) – Will

2

Ne stockez pas les fichiers PDF dans l'arborescence. Placez-les ailleurs sur le lecteur, car aucun utilisateur ne peut saisir l'URL, car il n'y a pas d'URL. Ensuite, récupérez les données par programmation seulement après avoir vérifié que l'utilisateur est autorisé à le voir, et renvoyez les octets du programme. Vous pouvez également créer un répertoire distinct dans l'arborescence des documents pour chaque utilisateur et placer des mots de passe sur ces répertoires en utilisant la sécurité du serveur Web, comme l'authentification de base Apache ou tout autre équivalent sur votre serveur. Cela peut être plus simple, mais si l'utilisateur peut partager des documents dans des combinaisons incohérentes, Al et Bob peuvent voir # 1, Al et Cathy peuvent voir # 2, Cathy et Dave peuvent voir # 3, etc, cela ne fonctionnera pas.

+0

Certainement, ne placez pas les fichiers sous la racine du document - cela signifie simplement que vous devez limiter l'accès à certaines parties de l'arborescence. Et en fonction de votre serveur HTTP, cela pourrait rendre la sauvegarde/restauration plus simple. – NVRAM

Questions connexes