CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

[Python/Flask] Un middleware pour securiser les user inputs ?

Panavision
Panavision
Niveau 11
09 juillet 2021 à 16:52:05

Bonjour,

Je cherche un moyen de "sanitizer" les données issus de l'utilisateur et destinées a etre enregistrées dans ma base de données mongoDb. Je veux eviter que mon application execute des scripts malicieux (C'est une appli flask).

J'ai reussi a mettre en place un systeme de protection sur une autre appli express/js node js juste en implémentant un middleware

app.use(mongoSanitize())

Cependant je ne trouve pas de solution équivalente pour mon application flask.
J'ai essayé la solution suivante :

def my_escape(func):
    @wraps(func)
    def wrapped(*args, **kwargs):
        return escape(func(*args, **kwargs))
    return wrapped


@app.route("/")
@my_escape
def index():
    print(request.args.get('id')) // non protégé
    return request.args.get('id') // protégé contre injections HTML

Mais le probleme c'est que cela ne s'applique que pour le return , et ne protege que contre les attaques html et n'inclut pas les injections NoSQL.

Mon but est de proteger automatiquement tous les request.get_json() , request.args et les request.form contre tout type d'attaques et d'injection.

Des conseils ?

godrik
godrik
Niveau 30
09 juillet 2021 à 17:19:49

mmm, la bonne solution est de ne creer les requetes nosql qu'a partir de parametre et pas en concatenant des chaines de caracteres.

Panavision
Panavision
Niveau 11
09 juillet 2021 à 19:48:39

Le 09 juillet 2021 à 17:19:49 :
mmm, la bonne solution est de ne creer les requetes nosql qu'a partir de parametre et pas en concatenant des chaines de caracteres.

Cette methodde impliquerait des changements enormes dans mon code qui fait plusieurs milliers de ligne. N'y a t-il pas une maniere plus globale de le faire comme avec express js ?

godrik
godrik
Niveau 30
09 juillet 2021 à 20:26:04

https://github.com/noamt/python-mongo-sanitizer ?

Panavision
Panavision
Niveau 11
10 juillet 2021 à 01:05:57

Le 09 juillet 2021 à 20:26:04 :
https://github.com/noamt/python-mongo-sanitizer ?

OK merci :ok:

Sous forums
  • Aide à l'achat Mac
  • Macintosh
  • Création de Jeux
  • Programmation
  • Création de sites web
  • Linux
  • Internet
  • Steam Deck
  • Hardware
La vidéo du moment