Transfert des questions via le client
Le serveur charge la question directement à la demande du client (par une requête à /question/{URI}).
Ceci peut occasionner des problèmes de sécurité puisqu'une requête GET peut être effectuée via le serveur à une adresse arbitraire.
Une mitigation existe déjà :
- Seuls les entêtes sont initialement récupérées
- Le contenu du fichier n'est récupéré que si certaines conditions sont remplies
- Le type affiché est un fichier texte ou une archive
- La taille affichée de la ressource est limitée (à une limite configurable)
- Le contenu du fichier n'est transmis au client que s'il s'agit d'un fichier yml représentant une question Progression valide.
D'éventuels problèmes de sécurité pourraient toujours exister, particulièrement la possibilité d'effectuer des requêtes en personnifiant le serveur.
Pour mitiger le problème, nous devrions évaluer la possibilité d'effectuer le chargement initial à partir du client, lequel transmettrait le contenu de l'exercice vers le serveur.
Certaines difficultés sont à prévoir :
- Les restrictions CORS empêchent-elles se principe?
- Le client pouvant ne pas être fiable, la question pourrait être modifiée avant la transmission au serveur
- Serait-il possible d'abuser de cette façon du client d'un tiers?