web-dev-qa-db-fra.com

Est-ce que révéler uniquement AUTH_KEY est un problème de sécurité?

Je dépanne un problème de plugin Wordpress. C'est un plugin qui génère un fichier Zip de fichiers existants sur le serveur et renvoie un lien pour télécharger le fichier.

Le plugin

https://wordpress.org/plugins/sp-client-document-manager/

Le module complémentaire qui est la source du problème.

http://smartypantsplugins.com/downloads/sp-client-document-manager-batch-operations/

Le plugin crée un répertoire pour enregistrer le fichier Zip généré en utilisant AUTH_KEY comme nom du répertoire. Lorsque l'URL est renvoyée au client, elle contient AUTH_KEY dans le chemin.

$Zip_path        = '' . SP_CDM_UPLOADS_DIR_URL . '' . AUTH_KEY. '/'

Cela renvoie une URL similaire à celle-ci:

http://www.example.com/wp-content/uploads/sp-client-document-manager/{the_wordpress_auth_key}/0123456789.Zip

Si l'un des caractères de AUTH_KEY n'est pas autorisé dans une URL, le téléchargement retournera un 404. Cela se produit, mais cela peut facilement être corrigé en remplaçant AUTH_KEY par une chaîne qui fonctionne dans une URL. Mon inquiétude est le fait qu'il contienne le AUTH_KEY.

Est-ce que révéler l'AUTH_KEY en soi est un motif de préoccupation?

2
Steve Zuranski

AUTH_KEY et ses frères ont été introduits dans WordPress 2.6 pour améliorer la sécurité des utilisateurs connectés. Ils sont utilisés pour chiffrer et valider les informations contenues dans votre cookie de connexion backend.

Bien que révéler le AUTH_KEY seul puisse ne pas être un réel problème de sécurité, vous ne devez néanmoins pas sortir/utiliser ceci n'importe où pour donner moins de surface aux attaques.

De plus, je ne vois pas pourquoi vous utiliseriez le AUTH_KEY pour préparer un lien de dossier/téléchargement. Je pense qu'il serait bien préférable d'utiliser quelque chose comme time() pour générer des noms de dossiers si vous voulez un caractère aléatoire ou unique, ou quoi que ce soit sans compromettre la sécurité du système.

Mise à jour: J'ai ouvert un fil de discussion dans la zone de support des plugins. Voyons si l'auteur répond à cela.

3
flomei