IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Apache Discussion :

Apache Struts : le framework victime de failles rendant vulnérables les applications serveurs créées


Sujet :

Apache

  1. #1
    Expert éminent sénior

    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Mars 2013
    Messages
    426
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2013
    Messages : 426
    Points : 32 561
    Points
    32 561
    Par défaut Apache Struts : le framework victime de failles rendant vulnérables les applications serveurs créées
    Apache Struts : le framework victime de failles rendant vulnérables les applications serveurs créées
    qui deviennent des cibles pour les hackers chinois

    Alors que suite à une faille critique l'Apache Software Foundation a publié un correctif pour les versions vulnérables d'Apache Struts, le framework de développement d'applications web Java pour l'édition entreprise, le constat c'est que cette mise à jour n'est pas très répandue.

    Noriaki Hayashi, chercheur en sécurité pour la firme Trend Micro, reporte que des hackers chinois se servent d'un outil spécialisé pour compromettre des applications développées avec les versions vulnérables du framework.

    L'outil commercialisé sur le marché noir, permet à ces deniers d'exploiter les vulnérabilités CVE-2013-2251, CVE-2013-1966, CVE-2011-3923, et CVE-2010-1870 qui donnent toutes la possibilité au hacker d'exécuter du code arbitraire dans l'application distante grâce à un webshell.


    Le chercheur confirme entre autre que de nombreux sites asiatiques sont victimes des attaques générées par cet outil, traduisant ainsi la forte présence sur la toile d'applications développées avec les versions vulnérables du Framework.

    Par ailleurs il recommande vivement aux développeurs d'installer la mise à jour sécurisée du Framework.

    Télécharger Apache Struts 2.3.15.1

    Source : blog Trend Micro

    Et vous ?

    Utilisez-vous Apache Struts ?

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    53
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2009
    Messages : 53
    Points : 118
    Points
    118
    Par défaut
    Utilisez-vous Apache Struts
    Je l'ai utilisé mais sur le net il est si difficile de trouver des serveurs JAVA (à moins de prendre un serveur virtuel ou dédié), que je suis revenu à PHP.

    ps: Voilà une info importante mais comme çà touche la sécurité et non "le pire code ou la pire appli que vous avez vu", personne n'est intéressé. Ou alors c'est à cause des vacances

  3. #3
    Membre habitué

    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    125
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 125
    Points : 175
    Points
    175
    Par défaut Struts...
    Citation Envoyé par salve34 Voir le message
    ps: Voilà une info importante mais comme çà touche la sécurité et non "le pire code ou la pire appli que vous avez vu", personne n'est intéressé.
    Ou alors c'est parce que c'est Struts, qu'il ne fait pas partie de Java EE et que tout le monde sait qu'il faut s'en débarasser depuis 10 ans

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    53
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2009
    Messages : 53
    Points : 118
    Points
    118
    Par défaut
    Citation Envoyé par ymajoros Voir le message
    Ou alors c'est parce que c'est Struts, qu'il ne fait pas partie de Java EE et que tout le monde sait qu'il faut s'en débarasser depuis 10 ans


    Apache Struts est un framework libre servant au développement d'applications web Java EE.
    source "http://fr.wikipedia.org/wiki/Apache_Struts"

  5. #5
    Expert éminent sénior Avatar de Uther
    Homme Profil pro
    Tourneur Fraiseur
    Inscrit en
    Avril 2002
    Messages
    4 621
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Tourneur Fraiseur

    Informations forums :
    Inscription : Avril 2002
    Messages : 4 621
    Points : 15 704
    Points
    15 704
    Par défaut
    Ce n'est pas incompatible.
    Il ne fais pas officiellement partie de JavaEE, mais il est utilisé pour la création de beaucoup d'application JavaEE.

  6. #6
    Membre éprouvé

    Homme Profil pro
    Architecte technique
    Inscrit en
    Juin 2005
    Messages
    588
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Juin 2005
    Messages : 588
    Points : 1 230
    Points
    1 230
    Par défaut
    Effectivement, Struts n'est pas le framework Web JavaEE... mais, un parmi d'autres !

    D'ailleurs, j'aimerais bien connaître sa part de marché actuelle...

    Il y a 10ans, en version 1, c'était un des leaders du marché... mais, le passage à la version 2 (incompatible avec la version 1) a été fatal pour la popularité de ce framework: beaucoup, de clients se sont alors tournés vers d'autres solutions !

    Pour en revenir à l'article : la publication d'un patch en pleines vacances d'été ne facilite pas son adoption rapide !

    a+
    Philippe

  7. #7
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2008
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 7
    Points : 7
    Points
    7
    Par défaut
    Il est vrai que depuis la sortie de JSF en version 2, Struts 1 à perdu pas mal de sa cote car beaucoup plus complexe à utiliser, mais sa version 2 l'a remis sur les rails. J'aimerais moi aussi bien savoir quelle est sa par de marché actuelle.

  8. #8
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2007
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2007
    Messages : 3
    Points : 6
    Points
    6
    Par défaut
    Nous pouvons dire que Struts fait partie des frameworks JEE.
    une application JEE est basée sur les concepts : Servlet, JSP et EJB.
    Maintenant pour dire qu'un framework ne fait pas partie de la specification JEE il faut vérifier s'il n'implemente pas ces concepts.

  9. #9
    Membre habitué

    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    125
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 125
    Points : 175
    Points
    175
    Par défaut
    Struts ne fait pas partie de la stack Java EE. C'est un framework non standardisé parmis d'autres. Personnellement, j'évite : pas de spec, une seule implémentation, des bugs deviennent la règle (c'est comme ça que c'est implémenté), développement par essais-erreurs plutôt que selon des règles... Et surtout : à part pour des raisons historiques, pourquoi choisir un outil techniquement à la ramasse si la stack standard permet de faire beaucoup mieux ?

  10. #10
    Membre actif Avatar de DrHelmut
    Homme Profil pro
    Software craftsman - JS, Java...
    Inscrit en
    Octobre 2005
    Messages
    116
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Software craftsman - JS, Java...
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2005
    Messages : 116
    Points : 241
    Points
    241
    Par défaut
    Indépendament des failles je trouve fou qu'en 2013 on parle encore de struts2 comme si cela pouvait être un choix cohérent de framework web....

    C'est lourd et poussif. Et JSF ne fait pas mieux, à croire que le monde Java ne sait pas faire de web de manière simple, élégante et efficace; pour ma part après GWT j'en suis revenu aujourd'hui aux fondamentaux : frontal web pur html/Jquery, services REST en java pour la partie traitement; et basta.

  11. #11
    Expert éminent sénior

    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Mars 2013
    Messages
    426
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2013
    Messages : 426
    Points : 32 561
    Points
    32 561
    Par défaut Une mise à jour pour Apache Struts est disponible en téléchargement
    Une mise à jour pour Apache Struts est disponible en téléchargement
    elle apporte des correctifs de sécurité majeurs

    Apache Struts 2.3.15.2 la mise à jour pour le framework open source de création d’applications web en Java est disponible. Celle-ci apporte des correctifs de sécurité majeurs pour des vulnérabilités rencontrées dans la version 2.3.15.1.

    A titre de rappel, un récent rapport de sécurité soulignait que les utilisateurs d’Apache Struts avaient tendance à utiliser des versions vulnérables du framework. Struts 2.3.15.1 avait d’ailleurs été recommandé aux utilisateurs afin de les protéger des menaces de sécurité.

    Par défaut, la fonctionnalité DMI (Dynamic Method Invocation) est désactivée dans Apache Struts 2.3.15.2. Pour l’équipe de développement, celle-ci constituait une menace de sécurité réelle pour les utilisateurs de la version 2.3.15.1.

    On note également que la vulnérabilité de type « Broken Access control » (qui donne la possibilité à un hacker d’avoir accès à certaines ressources alors qu’elles lui sont interdites en temps normal) qui affectait Struts 2.3.15.1 a été aussi corrigée.

    Les développeurs tout comme les autres utilisateurs sont vivement appelés à installer cette mise à jour et aussi celles qui la suivront pour éviter toute forme de désagrément.

    Télécharger Apache Struts 2.3.15.2

    Source : Apache Struts

    Et vous ?

    Utilisez-vous Apache Struts ?

  12. #12
    Modérateur
    Avatar de Gugelhupf
    Homme Profil pro
    Analyste Programmeur
    Inscrit en
    Décembre 2011
    Messages
    1 325
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Analyste Programmeur

    Informations forums :
    Inscription : Décembre 2011
    Messages : 1 325
    Points : 3 766
    Points
    3 766
    Billets dans le blog
    12
    Par défaut
    Citation Envoyé par salve34 Voir le message
    ps: Voilà une info importante mais comme çà touche la sécurité et non "le pire code ou la pire appli que vous avez vu", personne n'est intéressé
    Struts 2 est un framework que j'ai essayé récemment, juste après avoir étudié JSF2 un peu avant.

    Dans un premier temps j'ai ressenti un effet "retour en arrière", parce que contrairement à JSF2 qui fonctionne en mode Facelet/ManagedBean, il y a plusieurs fichiers à configurer dans Struts2. Et plus il y a de fichier à configurer dans un projet et plus celui-ci devient lourd à gérer...

    Mais d'un autre coté j'ai eu l'impression que malgré ce coté "old-school" il pourrait y avoir plus de souplesse... Et puis au fur et à mesure que je construisais mon interface, je me suis rendu compte que ce framework n'était plus vraiment adapté au développement d'application Web.
    La question que j'ai fini par me poser fut : Qu'est ce que Struts2 de base apporte plus que JSP/Servlet à part les formulaires, et avoir des JSP plus propres sans code <% Java %> ? ... rien de plus j'ai l'impression (mais je peux très bien me tromper).

    Autrement le framework fonctionne en mode 100% action... comment faire pour qu'une action soit appelé avant le chargement de l'index ?
    Malheureusement les forums struts/struts2 sont morts, mais j'ai fini pas trouver la réponse. La solution consiste à rafraichir sa page d'index comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <META HTTP-EQUIV="Refresh" CONTENT="1;URL=Index.action">
    ... C'est fou non ? Pour moi un code source d'une page HTML ne doit pas permettre aux utilisateurs de connaitre le type d'architecture au niveau du serveur. Mais là on sent le struts à plein nez. Comment ne pas se faire pirater ?

    Maintenant je vais essayer d'étudier d'autres framework Java orienté Web.

  13. #13
    Membre habitué Avatar de Altenide
    Homme Profil pro
    Formateur en technologies web
    Inscrit en
    Décembre 2008
    Messages
    129
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Formateur en technologies web
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2008
    Messages : 129
    Points : 182
    Points
    182
    Par défaut
    comment faire pour qu'une action soit appelé avant le chargement de l'index ? Malheureusement les forums struts/struts2 sont morts, mais j'ai fini pas trouver la réponse. La solution consiste à rafraichir sa page d'index comme ceci :
    Code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <META HTTP-EQUIV="Refresh" CONTENT="1;URL=Index.action">
    ... C'est fou non ?
    Je ne suis pas sur que ce soit la meilleur façon d'appeler une action struts 2. Cela dénote simplement une profonde méconnaissance du framework en question et du bloc JEE, Servlet, filter. Ce qui est fou s'est d'appliquer la meilleure mauvaise solution trouvée on ne sait ou sur le web. Après que ce soit en Spring, JSf, struts ou autre chose...

  14. #14
    Membre éprouvé
    Homme Profil pro
    Inscrit en
    Mai 2011
    Messages
    328
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2011
    Messages : 328
    Points : 1 142
    Points
    1 142
    Par défaut
    Salut,

    j'ai pas mal développer sous Struts 1/2 et je trouvais ce framework intéressant, enfin à mes débuts. Néanmoins comme le dit Gugelhupf, je ne vois plus bien l'utilité du framework depuis l'arrivée de JSF 2 et supérieur.

    D'ailleurs, je peux dire la même chose de Spring. Le couple JSF 2 et JavaEE 6 offre la plupart des fonctionnalités intéressantes de Spring qui manquait jusqu'alors (IOC notamment), sans la lourdeur de Spring. Pour Spring, le seul intérêt que je pourrais y voir c'est pour Spring Security, quoique j'ai testé récemment Apache Shiro et celui-ci répond aussi bien voir mieux à cette problématique.

    Le monde JavaEE change, bien que je trouve qu'en entreprise cela ne se fasse pas très rapidement. Je vois énormément de projet String, Struts, Hibernate (pas forcément des anciens projets) mais JSF ne semble pas bien intégré sur le marché français.

  15. #15
    Modérateur
    Avatar de Gugelhupf
    Homme Profil pro
    Analyste Programmeur
    Inscrit en
    Décembre 2011
    Messages
    1 325
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Analyste Programmeur

    Informations forums :
    Inscription : Décembre 2011
    Messages : 1 325
    Points : 3 766
    Points
    3 766
    Billets dans le blog
    12
    Par défaut
    Citation Envoyé par Altenide Voir le message
    Je ne suis pas sur que ce soit la meilleur façon d'appeler une action struts 2. Cela dénote simplement une profonde méconnaissance du framework en question et du bloc JEE, Servlet, filter. Ce qui est fou s'est d'appliquer la meilleure mauvaise solution trouvée on ne sait ou sur le web. Après que ce soit en Spring, JSf, struts ou autre chose...
    Sur les 5 exemples que j'ai trouvé sur le web, concernant le chargement de la page par défaut (l'index), 4 montrent l'exemple que j'ai donné au dessus. Et pourtant c'est une solution proposée par des professionnels.

    La seule autre solution que j'ai trouvé est celle-ci (non testé) :
    D'abord, créer une page vide welcome dans le web-content.
    Ajouter le contenu suivant dans le web.xml :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
     
    <!-- web.xml -->
    <filter>
            <filter-name>action2</filter-name>
            <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
    </filter>
    <filter-mapping>
             <filter-name>action2</filter-name>
             <url-pattern>/*</url-pattern>
             <dispatcher>REQUEST</dispatcher>    
             <dispatcher>FORWARD</dispatcher>
             <dispatcher>INCLUDE</dispatcher>
             <dispatcher>ERROR</dispatcher>
    </filter-mapping>
     
    <welcome-file-list>
            <welcome-file>welcome</welcome-file>
    </welcome-file-list>
    Et enfin dans le web.xml :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <!-- struts.xml -->
    <action name="welcome" class="welcome.action">
            <result>/index.jsp</result>
    </action>


    Je veux bien savoir quelle est la "bonne méthode" à appliquer... sauf que struts/struts2 m'a l'air bien délaissé par la communauté.

  16. #16
    Membre régulier
    Profil pro
    dev
    Inscrit en
    Mars 2007
    Messages
    53
    Détails du profil
    Informations personnelles :
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : dev

    Informations forums :
    Inscription : Mars 2007
    Messages : 53
    Points : 78
    Points
    78
    Par défaut
    D'ailleurs, je peux dire la même chose de Spring. Le couple JSF 2 et JavaEE 6 offre la plupart des fonctionnalités intéressantes de Spring qui manquait jusqu'alors (IOC notamment), sans la lourdeur de Spring
    on disait ça sur les JEE (EJB, serveur ) il y a quelques mois .

    Mais troll à part, pour moi, ça dépend du contexte , du besoin et du taille de projet. Je ne ferais pas de JSF pour une petite appli web de quelques pages (actions), et pas de Struts dans une application de gestion de .... .

    et franchement Struts ça reste mieux que JSP/Servlet ( je suis sur une JSP de 2000 lignes de code ).

  17. #17
    Modérateur
    Avatar de Gugelhupf
    Homme Profil pro
    Analyste Programmeur
    Inscrit en
    Décembre 2011
    Messages
    1 325
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Analyste Programmeur

    Informations forums :
    Inscription : Décembre 2011
    Messages : 1 325
    Points : 3 766
    Points
    3 766
    Billets dans le blog
    12
    Par défaut
    Citation Envoyé par chortani Voir le message
    et franchement Struts ça reste mieux que JSP/Servlet ( je suis sur une JSP de 2000 lignes de code ).
    Oui mais non, tu prends un cas personnel qui est extrême.
    Dans un premier temps, enlèves toutes les balises de code Java <% %> dans la .jsp en question, et dit nous combien il reste de lignes.

    Ce n'est pas parce que tu travailles en JSP/Servlet que tu as 2000 lignes dans une .jsp

    La personne qui a fait ce travail de cochon peut très bien te reproduire la même chose avec une .jsp de 2000 lignes pour struts/struts2.

  18. #18
    Membre émérite

    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    3 995
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 3 995
    Points : 2 522
    Points
    2 522
    Par défaut
    Citation Envoyé par DrHelmut Voir le message
    Indépendament des failles je trouve fou qu'en 2013 on parle encore de struts2 comme si cela pouvait être un choix cohérent de framework web....

    C'est lourd et poussif. Et JSF ne fait pas mieux, à croire que le monde Java ne sait pas faire de web de manière simple, élégante et efficace; pour ma part après GWT j'en suis revenu aujourd'hui aux fondamentaux : frontal web pur html/Jquery, services REST en java pour la partie traitement; et basta.
    Ca se défend, ce que tu dis, très franchement. Tu rends ta partie serveur totalement indépendante de ta partie client, et ça, c'est déjà un avantage énorme.

  19. #19
    Membre régulier
    Profil pro
    dev
    Inscrit en
    Mars 2007
    Messages
    53
    Détails du profil
    Informations personnelles :
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : dev

    Informations forums :
    Inscription : Mars 2007
    Messages : 53
    Points : 78
    Points
    78
    Par défaut
    Oui c’était juste un exemple, et t'as raison sur ce point. Mais je pense que c'est plus simple de faire un code in-maintenable avec jsp/servlet qu'avec struts. Avec Struts tu sépare les modelés (form ) l'action , la validation ,les tags,etc ...

    Ayant travailler bcp avec jsp/servlet, je me rend compte avec le temps que je commence à implémenter les fonctionnalité d'un Framework MVC( struts,springmvc ou autre) mais en moins bien ( test, doc, communauté ). donc c'est pour ça que j'ai dit

    et franchement Struts ça reste mieux que JSP/Servlet

  20. #20
    Modérateur
    Avatar de Gugelhupf
    Homme Profil pro
    Analyste Programmeur
    Inscrit en
    Décembre 2011
    Messages
    1 325
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Analyste Programmeur

    Informations forums :
    Inscription : Décembre 2011
    Messages : 1 325
    Points : 3 766
    Points
    3 766
    Billets dans le blog
    12
    Par défaut
    Citation Envoyé par chortani Voir le message
    Ayant travailler bcp avec jsp/servlet, je me rend compte avec le temps que je commence à implémenter les fonctionnalité d'un Framework MVC
    Si on te forme un minimum, tu sauras qu'il ne faut surtout pas :
    • faire de System.out.println() dans une Servlet
    • faire du code Java dans une .jsp avec les balises <% %>


    Partant de ce constat, JSP/Servlet peut être utilisé en mode MVC :
    • Les contrôleurs : Les Servlets
    • Les vues : les .jsp avec utilisation des EL (Expression Language)
    • Les modèles : ton code métier utilisé dans les contrôleurs


    Struts/Struts2 de base c'est juste du JSP/Servlet avec des contraintes.

Discussions similaires

  1. Réponses: 4
    Dernier message: 17/07/2007, 13h30
  2. Réponses: 2
    Dernier message: 06/04/2007, 15h04
  3. Réponses: 2
    Dernier message: 15/01/2007, 14h42
  4. Réponses: 3
    Dernier message: 20/10/2006, 23h53
  5. tomcat apache struts
    Par Awihn dans le forum Tomcat et TomEE
    Réponses: 1
    Dernier message: 12/10/2006, 08h20

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo