The Daily Shaarli
Vaaache le nombre de technos web dédiées à la sécurité qui ont fleuri cette décennie… :O
Je découvre :
Le massif du Mont-Blanc, les gorges de l’Ardèche, la dune du Pilat… Tous ces joyaux du tourisme made in France font partie des 2 700 sites classés selon la loi du 21 avril 1906. Quelque 1,1 million d’hectares de paysages français, soit 2 % du territoire, sont ainsi protégés de l’appétit des promoteurs. De façon simple et diablement efficace : tout projet d’aménagement notable envisagé sur ces sites — défrichage, agrandissement d’un bâtiment, création d’une passerelle — doit obtenir l’aval du ministère de l’Environnement, et passer sous les fourches caudines des inspecteurs des sites classés. Les changements mineurs, quant à eux, sont confiés au préfet.
Un projet de décret, daté du 12 avril, signé par le Premier ministre, Edouard Philippe, et le ministre de la Transition écologique, François de Rugy, prévoit que toute autorisation d’aménagement sera désormais délivrée localement par le préfet, lequel, on le sait, est généralement un ardent défenseur de l’environnement, insensible aux pressions amicales des notables et des entrepreneurs du coin… ll s’agit de « prendre les décisions au plus près du territoire afin de favoriser le dialogue avec les porteurs de projets », explique au « Canard » le cabinet du Premier ministre, ajoutant que cette décision est « dans la ligne de ce qui a émergé du grand débat ». Ah bon ?
Parer au plus préfet
Alexandre Gady, professeur à la Sorbonne (« Le Figaro », 5/4), s’inquiète : « Dans des lieux à forte pression immobilière, où des projets sont repoussés avec constance depuis plusieurs années, comme en Val de Loire ou sur la Côte d’Azur, on risque d’assister à un bétonnage de sites exceptionnels. »
Ce que confirme David Couzin, président de l’Association des inspecteurs des sites et des chargés de mission paysage : « On va voir fleurir les projets d’hôtels cinq étoiles dans les prochains mois, je peux vous le dire ! Les promoteurs connaissent les ficelles locales pour faire passer des projets qu’on repousse depuis des années. Par exemple, dans les Pays de la Loire, l’agrandissement du stade du FC Nantes, des aménagements pour touristes sur le lac de Grand-Lieu, une passerelle géante au-dessus de l’Erdre, etc. Ce décret va mettre en l’air un dispositif qui a un siècle et qui a permis de sauvegarder les paysa- ges remarquables et leur biodiversité. »
Le nouveau monde sera moche, ou ne sera pas !
Hum… J'avais jamais trop pensé à ça : les décisions prises à l'échelle locale sont facilement influençables par les gens et entrepreneurs du coin, la proximité permettant de connaître les ficelles. Mais, d'un autre côté, les décisions prises à des échelles supérieures sont influençables par les grosses sociétés commerciales (inter)nationales via les réseaux d'amitié et les cercles de pouvoir. Pas de solution idéale si ce n'est de renforcer un contre-pouvoir judiciaire ? On notera que la loi Macron de 2015 a réduit les délais et les possibilités d'action des associations de défense de l'environnement en matière de construction, y compris sur sites classés…
Dans le Canard enchaîné du 15 mai 2019.
Le patron de la mutuelle cultive sa passion pour les bagnoles, les avions et ses enfants.
Qui a tué le nouveau géant français de l’assurance mutualiste ? En moins de quatre mois, le mariage d’AG2R La Mondiale et de la Matmut, qui devait réunir 16 000 collaborateurs, s’est transformé en divorce.
Selon les communiqués officiels, « des divergences de valeurs, de vision et de méthode » ont ruiné cette union. Mais les « valeurs » ont bon dos… Une bagarre féroce a très vite opposé les équipes dirigeantes des deux mutuelles. Les patrons d’AG2R ont constaté que Daniel Havis, le président de la Matmut, ne voulait sûrement pas « mutualiser » le pouvoir, cherchant à évincer deux de leurs dirigeants — ce que le groupe, contacté par « Le Canard », dément. Et ils ont découvert une gestion pour le moins clanique…
Rejetons pas rejetés
Figure incontournable de la mutualité française, Havis, l’homme aux quatre enfants, aux huit Porsche et aux deux avions, qui se vante de gagner 450 000 euros par an, règne depuis vingt-six ans sur la Matmut. Avec le zélé soutien de son épouse, Elisabeth, qui, jusqu’à sa retraite, en 2018, cumulait les fonctions de directrice générale adjointe de la caisse et d’admirfistratrice de plusieurs filiales du groupe normand.
En bon père de famille, Daniel Havis s’est aussi occupé de la carrière de ses enfants. L’aînée, Emilie, travaille pour Visaudio, le réseau mutualiste d’optique et d’audition, dont le conseil de surveillance est présidé par son papa. Le deuxième, Maxime-René, a été bombardé, entre 2013 et 2015, chargé de com’ d’Imsa Racing, l’écurie d’endurance alors sponsorisée à grands frais par la Matmut. Le troisième, Arthur, a été coopté au directoire de Visaudio, tandis que son épouse, Natacha, a été embauchée à la Matmut dans l’équipe de placements immobiliers. Le benjamin, Hector, s’est fait nommer juré du Prix international Matmut de l’orchestre de jazz. Explications de la Matmut : ils ont tous « des formations, des diplômes, des parcours professionnels… » C’est pas beau, l’esprit de famille ?
Havis a d’autres passions. Le rugby, par exemple. Après avoir cumulé 9 millions de pertes, le MTG XV de Montauban, dont la mutuelle était actionnaire et Havis vice-président, a dû déposer le bilan en 2010. Vilain plaquage.
Désormais, le mutualiste s’entiche d’avions. Le 17 avril 2015, la Matmut a pris le contrôle de Phenix, petite compagnie d’aviation d’affaires installée au Havre. En dépit d’une situation économique précaire, la société s’est dotée d’un appareil quasiment neuf, immatriculé F-HMUT. Pour les « opérations d’assistance » et les « rapatriements sanitaires », précise sa direction.
En trois ans, Phenix a accumulé 1,95 million de pertes ! Matmut Développement, la filiale portant la compagnie aérienne (rebaptisée « Air Matmut » en interne), affiche 3 millions de dettes au compteur.
Et le décollage, c’est pour quand ?
Encore un exemple qui illustre pourquoi les frais de gestion des mutuelles dépassent ceux de la sécurité sociale. Salaires mirobolants, entre-soi idéal pour prendre de mauvaises décisions, sponsor sportif et actionnaire pour le prestige / l'image, matraquage publicitaire avec Chevallier et Laspalès, etc. Forcément, tout ça, ça coûte un « pognon de dingue », et c'est répercuté sur les cotisations, contrairement à la sécu…
Dans le Canard enchaîné du 15 mai 2019.
Damn Vulnerable Web App (DVWA) is a PHP/MySQL web application that is damn vulnerable. Its main goals are to be an aid for security professionals to test their skills and tools in a legal environment, help web developers better understand the processes of securing web applications and aid teachers/students to teach/learn web application security in a class room environment.
Licence : GPL.
Attention : le niveau de sécurité activé par défaut, « impossible », empêche toute attaque. Il faut le réduire en utilisant l'interface web.
Via https://www.it-connect.fr/installation-de-mod_security-devant-un-serveur-web-apache/ .
Content Security Policy (CSP) est un entête HTTP (la version sous forme d'attribut dans la balise XHTML « meta » est incomplète) qui permet, à un site web, de fournir, à un navigateur web, des instructions portant sur l'origine des contenus de ce site web. Exemple : "le seul javascript que tu peux exécuter sur ce site web doit provenir de https://jscdn.example". Cela fonctionne avec une politique par défaut couplée à une liste blanche des contenus autorisés à être récupérés. Cela va très loin puisque ça permet d'indiquer l'origine des scripts javascript, des images, des polices de caractère, la destination d'un formulaire web, les pages qui peuvent être incluses dans une balise XTML frame, etc.
Le but de tout cela est d'empêcher le navigateur web du visiteur d'un site web d'inclure et de charger des contenus malveillants, notamment des scripts javascript qui peuvent ensuite servir à tromper l'utilisateur d'un site web, à voler des données (dont des identifiants), à usurper un contenu, etc.
Évidemment, les autorisations sont transitives : si un script JS autorisé tente de charger un JS pas autorisé dans la politique, ça ne fonctionnera pas. De même, la politique est appliquée après la modification du DOM par un script JS, donc il est inutile de tenter de modifier une balise avec du JS autorisé dans l'intention de charger un script JS non autorisé, par exemple.
Comme tout entête, il peut être positionné par le site web (via la fonction header() de PHP, par exemple) et par le serveur web (module headers d'Apache httpd, par exemple). Il y a un ordre (source) : un entête positionné par une application PHP peut être écrasé par un entête positionné dans la configuration principale du serveur web, qui peut lui-même être supplanté par un entête positionné dans la configuration déportée du serveur web (dite htaccess). Évidemment, il y a des pièges (nous en observerons un plus bas)…
Par défaut, en l'absence d'un entête CSP, les navigateurs web appliquent aucune politique : tout contenu peut être téléchargé depuis n'importe où et utilisé. Évidemment, ça ne veut pas dire qu'une ressource, notamment un script Javascript, peut accéder à n'importe quelle ressource distante, car un autre mécanisme, Cross-origin resource sharing (CORS), empêche cela, j'y reviendrai à la fin de ce shaarli.
L'interprétation de cet entête par les navigateurs web est plutôt strict, donc dès que l'on commence à l'utiliser, il vaut mieux avoir doublement vérifié toute les ressources téléchargées directement ou indirectement sur le site web. Exemple : par défaut, CSP bloque l'exécution du Javascript inline (c'est-à-dire positionné dans la balise XHTML « script ») et l'utilisation de la fonction Javascript « eval() ». Néanmoins, un mécanisme de rapport existe : un navigateur web qui a bloqué du contenu à cause d'une CSP peut le signaler en envoyant un blob JSON à un formulaire web indiqué dans la CSP.
D'un côté, nous avons une application web Java (Tomcat) derrière des frontaux Apache httpd qui effectue une authentification centralisée (Single Sign-On, SSO). Convenons qu'elle est accessible par une seule URL : https://sso.example/ .
De l'autre côté, nous avons un portail internet Java (Tomcat) derrière des frontaux Apache httpd qui inclu (avec une balise XHTML « iframe ») la plupart des sites web que nous mettons à la disposition de notre communauté. Convenons qu'elle est accessible par une seule URL : https://portailweb.example/ .
Il faut être identifié et authentifié (par le SSO) sur le portail web pour que les onglets "contenant" les sites web apparaissent (car on ne présente pas les mêmes à tous nos utilisateurs). Cette authentification n'est pas transitive : le site web inclus ne sait pas si un utilisateur est authentifié sur le portail ou non, il réinterroge toujours le SSO. Nous faisons cela car, d'un point de vue fonctionnel, la plupart des sites web inclus doivent pouvoir être appelés directement (en dehors du portail). Si nous utilisions le portail web comme un proxy SSO, alors les sites web ne pourraient plus être consultés en dehors du portail.
Or, la durée de conservation du ticket délivré par le SSO est variable en fonction des sites web, ce n'est pas le SSO qui peut l'imposer aux applications (enfin si, mais la marge est grande). Donc, il est possible que le portail web continue à considérer qu'un utilisateur est connecté alors que le SSO ne le considère plus de son côté. Ainsi, quand le site web inclus dans le portail interrogera le SSO, celui-ci l'informera que l'utilisateur n'est plus authentifié. Ce site web inclus redirigera alors l'utilisateur vers notre SSO. On aura donc le SSO inclus dans notre portail web.
Voyons comment configurer nos frontaux Apache httpd pour tenir compte de tout ça.
Ces deux entêtes HTTP permettent d'indiquer à un navigateur web qu'un site web peut être inclus (ou non) dans un autre. Elles permettent d'éviter les attaques de type clickjacking genre j'inclus, sur mon site web, le formulaire de ton site web qui octroie des privilèges à un compte utilisateur et je le camoufle derrière du XHTMl/CSS qui te promet ceci ou cela… Tu cliques, comme t'es identifié sur ton site web, ça passe et tu octroies implicitement des droits au compte que j'ai désigné dans la requête. Suite logique des attaques CSRF, attaques que l'on contre facilement avec un token stocké dans la session…
Comme le laisse deviner son nom préfixé par « X- » (pour expérimental), X-Frame-Options est un entête déprécié qui a été remplacé par l'attribut « frame-ancestors » dans la deuxième version de CSP. Source : la norme CSPv2.
Évidemment, tous les navigateurs ne prennent pas en charge tous les entêtes ni tous les attributs et valeurs pour chaque entête. Les navigateurs "récents" (Firefox >= 36, Chrome >= 39, Safari >= 10, Edge >= 15) prennent en charge CSP frame-ancestors et X-Frame-Options. Les "vieux" navigateurs (IE, Edge >= 12, Firefox >= 18) implémentent uniquement X-Frame-Options. Notons que même les versions récentes de Safari, Chrome et Opera ne prennent pas en charge la valeur « ALLOW-FROM » de X-Frame-Options. Sources : 1, 2.
Lors de la résolution des problèmes évoqués ci-dessous, il m'avait semblé qu'il fallait les deux entêtes pour couvrir fonctionnellement notre parc, notamment les machines qui avaient un Firefox pas à jour. En rédigeant ce qui précède des mois après, je suis beaucoup plus sceptique : je pense que nous devrions pouvoir cesser notre utilisation de X-Frame-Options sans impact sur nos utilisateurs, car nous n'avons pas d'aussi vieilles versions de Firefox en circulation et que X-Frames-Options tel que nous l'utilisons (avec l'attribut « ALLOW-FROM ») n'est pas prise en charge par Safari, Opera et Chrome. Donc ça sert uniquement pour IE et les versions mobiles de navigateurs, lesquels ne sont pas dans notre périmètre.
Tu l'as compris : la suite de ce shaarli va traiter de la mise en pratique de CSP uniquement sous l'angle d'un seul de ses attributs, frame-ancestors.
Une dernière note : en cas d'inclusions multiples (site 1 inclus site 2 qui inclus site 3), les navigateurs web, comme la norme le leur permet, peuvent interpréter différemment la somme des CSP (celle du site 3 puis du site 2 puis du site 1) et la comparaison de l'origine (faut-il comparer site 3 avec site 1 ou site 3 avec site 2 ou… ?).
Par défaut, il était impossible d'intégrer notre SSO à tout site web. Nous croyions que c'était à cause d'une interprétation stricte des navigateurs web de l'absence de CSP/X-Frame-Options. Nous verrons, dans le point suivant, que ce n'est pas ça du tout.
Pour pallier à ça, voici le bout de conf' que l'on avait ajouté dans la configuration du virtualhost de nos frontaux SSO :
Header always set X-Frame-Options "SAMEORIGIN"
Header always set Content-Security-Policy "frame-ancestors 'self' *.example"
On notera que ces deux entêtes ne signifient pas la même chose. La première, pour les vieux navigateurs, indique que seul notre SSO peut s'inclure lui-même (nous verrons plus bas que ce n'est pas ce que nous voulons). La deuxième, pour les navigateurs web récents, signifie que notre SSO peut s'inclure lui-même ou être inclus par tout site web dont le nom termine par « example » (portailweb.example, autresiteweb.example, etc.). Du coup, le comportement sera différent entre les "vieux" et les "jeunes" navigateurs web. Mais c'est dans cet état que j'ai repris le flambeau.
Le premier problème a été un navigateur web Safari qui indiquait ce qui suit dans sa console lorsqu'on consultait notre portail web :
Multiple 'X-Frame-Options' headers with conflicting values ('SAMEORIGIN, DENY') encountered when loading 'https://sso.example/'. Falling back to 'DENY'.
Refused to display 'https://sso.example/' in a frame because it set 'X-Frame-Options' to 'SAMEORIGIN, DENY'.
Comme nous venons de le décrire, nous avions pourtant un unique « Header always set X-Frame-Options "SAMEORIGIN" » dans la configuration de nos Apache httpd. D'où peut donc bien venir ce « DENY » ?!
Le code de notre SSO positionne lui aussi cet entête avec la valeur « DENY » (on observe cela en capturant le trafic réseau entre le frontal web et le SSO). Cet entête est conservé par le mod_proxy_ajp d'Apache httpd (ce qui est normal). Notre bout de configuration ne l'écrase pas car le mod_proxy (ajp ou http) utilise la table globale pour stocker les entêtes HTTP récupérés depuis le backend (c'est par ici pour les explications). Or, la directive que nous avons ajoutée indique de positionner l'entête dans la table « always ». Oui, c'est un comportement inverse à celui du mod_fcgi_proxy utilisé avec PHP-FPM qui, lui, peuple la table always et non la table par défaut…
Pour résoudre ce problème, soit on utilise le bout de configuration suivant :
Header set X-Frame-Options "SAMEORIGIN"
Soit le bout de conf' suivant qui a l'avantage de laisser moins de marge d'appréciation :
Header unset X-Frame-Options
Header always set X-Frame-Options "SAMEORIGIN"
Header always set Content-Security-Policy "frame-ancestors 'self' *.example"
Notons que nos navigateurs, plus récents, utilisent CSP frame-ancestors et ignorent donc X-Frame-Options conformément à la norme, ce qui fait que nous n'avions pas identifié ce problème avant qu'un utilisateur se ramène avec son Mac + Safari.
Quand nous nous rendons sur notre portail web, la console de développement des anciens navigateurs web, ceux qui ne prennent pas en charge CSP frame-ancestors, affiche :
Refused to display 'https://sso.example' in a frame because it set 'X-Frame-Options' to 'SAMEORIGIN'.
Dans les normes du web, une origine, c'est un protocole d'accès (http, https, etc.) + un nom d'hôte (sso.example) + un port. Ainsi, https://portailweb.example:443 n'a pas la même origine que https://sso.example:443 car le nom d'hôte est différent. Même chose avec http://portailweb.example:443 et https://portailweb.example:443 (le protocole change) ainsi qu'avec https://portailweb.example:443 et https://portailweb.example:8443 (le port change).
OK, indiquons clairement que notre portail web peut inclure notre SSO. Changeons la config' du virtualhost du frontal de notre SSO pour celle-ci :
Header unset X-Frame-Options
Header always set X-Frame-Options "ALLOW-FROM https://portailweb.example"
Header always set Content-Security-Policy "frame-ancestors 'self' *.example"
Cela fonctionne. \o/
Ce qui devait arriver est arrivé… Notre SSO doit aussi être inclus par un autre site web que notre portail web.
L'ennui, c'est que, contrairement à CSP, « X-Frame-Options » peut contenir un et un seul « ALLOW-FROM », et ne peut pas contenir un joker (« *.example »), donc, in fine, un seul site web peut être autorisé.
On ne va quand même pas utiliser la valeur « ALLOWALL », sinon tout site web pourrait inclure notre SSO, bonjour l'absence de sécurité…
On ne peut pas renoncer à l'une ou à l'autre des inclusions (c'est-à-dire recoder l'un des sites web afin de se passer des iframes) dans un délai raisonnable…
Le module headers d'Apache httpd permet d'ajouter des entêtes de manière conditionnelle, en fonction de l'existence (ou non) d'une variable d'environnement ou d'une expression rationnelle (qui peut porter sur la valeur d'une variable d'environnement). Parmi la liste des variables d'environnement disponibles, « HTTP_REFERER » retient mon attention.
Si le navigateur web charge notre SSO à partir de notre portail web, alors le referer aura « […]portailweb.example[…] » pour valeur. S'il charge le SSO depuis l'autre site, le referer sera différent. On n'a plus qu'à insérer un entête « X-Frame-Options » en fonction de la situation.
Changeons encore une fois la config' du frontal de notre SSO :
Header unset X-Frame-Options
Header always set X-Frame-Options "ALLOW-FROM https://portailweb.example" "expr=%{HTTP_REFERER} =~ m#portailweb.example#"
Header always set X-Frame-Options "ALLOW-FROM https://autresiteweb.example" "expr=%{HTTP_REFERER} =~ m#autresiteweb.example#"
Header always set Content-Security-Policy "frame-ancestors 'self' *.example"
Cela fonctionne. \o/
Notons que cela fonctionne partiellement avec les extensions de navigateur qui bidouillent le referer afin de préserver la vie privée. Si l'extension est configurée pour effacer totalement le referer, alors notre SSO ne sera pas chargé. Si elle est configurée pour tronquer le referer afin de conserver uniquement le domaine (et d'effacer le reste de l'URL), notre SSO sera chargé. La première configuration est peu courante, car elle casse beaucoup de sites web, donc nous ne la supportons pas. À l'impossible nul n'est tenu.
L'application web shaarli peut être utilisée avec un bookmarlet, c'est-à-dire un bouton qui déclenche un bout de Javascript qui ouvre un pop-up contenant la page "ajout d'un lien" de shaarli et qui y pré-rempli certains champs (titre, URL, etc.).
Avec Firefox, mon bookmarklet ne fonctionne plus sur certains sites web (Github, par exemple) depuis quelques années, c'est-à-dire depuis que Debian empaquette une version de Firefox qui implémente CSP et/ou depuis que la CSP de ces sites web est devenue bloquante.
Je l'ai écrit dans l'introduction de ce shaarli : par défaut, CSP bloque le javascript inline. Or, le bookmarklet shaarli n'est rien de plus qu'un bout de Javascript exécuté dans le contexte d'exécution d'un site web…
Si j'installe un reverse proxy Apache httpd entre mon Firefox et Github, que je le configure pour remplacer l'attribut « script-src github.githubassets.com; » contenue dans la CSP de Github par « script-src 'unsafe-inline' github.githubassets.com; » (toujours avec le module headers), le bookmarlet shaarli fonctionne.
C'est un problème connu. La norme impose que les bookmarklets ne soient pas affectés par le traitement de CSP. Visiblement, Firefox n'avance pas sur ce sujet.
Une extension Firefox qui remplace le bookmarklet existe… Mais pouvons-nous avoir confiance en Aeris ? :))))
Par défaut, un certain nombre d'objets web ne peuvent pas demander à un navigateur web d'émettre des requêtes vers une ressource distante qui n'a pas la même origine (même protocole, même domaine, même port, voir ci-dessus pour plus d'infos) qu'eux. C'est le cas pour les API XMLHttpRequest (AJAX) et Fetch, les polices chargées avec @font-face en CSS, les textures WebGL, les canevas HTML5, etc. Liste complète chez Mozilla. La politique par défaut des navigateurs web est donc « même origine ». Les autres objets (une image, une vidéo, une feuille CSS, une inclusion, etc.) ne sont pas concernés, elles ne sont pas bloquées par défaut.
HTTP Cross-Origin Resource Sharing (CORS) est un ensemble d'entêtes HTTP, de la forme « Origin: » et « Access-Control-* », qui permettent de débrayer ce comportement et d'autoriser un navigateur web qui exécute un objet récupéré sur un site web A à émettre des requêtes destinées à un site web B. Évidemment, c'est le site web qui veut être accessible, le site B dans mon exemple, qui doit positionner des entêtes CORS autorisant le site web A ou tous les sites web.
Cela est utile dans des contextes ou des données sont exposées par des API qui peuvent être consultées en temps réel (XMLHttpRequest). Dans ces contextes, les données sont rarement sur le même domaine que le code qui les formate et les présente (architecture frontend / backend, fournisseurs différents, agrégation de fournisseurs de données, etc.).
Exemple : positionner l'entête « Access-Control-Allow-Origin: * » sur ton site web autorise d'éventuels objets XMLHttpRequest placé sur tout site web à émettre des requêtes destinées à ton site web. Évidemment, on peut préciser une seule origine avec « Access-Control-Allow-Origin: https://front.example.com » + « Vary: Origin ». On a le droit qu'à un seul domaine, mais on peut le faire varier en fonction du header « Origin » inséré par le navigateur web à l'aide de l'insertion conditionnelle d'un entête, comme nous l'avons vu précédemment.
Notons qu'il existe deux types de requêtes XMLHttpRequest / Fetch : des requêtes simples / principales contenant des données utilisateur et des requêtes préliminaires qui ne contiennent pas de données utilisateurs mais qui servent à interroger le serveur web sur les méthodes HTTP (GET, POST, etc.), les types de contenus (application/x-www-form-urlencoded, etc.) et les entêtes qu'il supporte. Les requêtes préliminaires sont obligatoires quand la requête principale utilise des méthodes, des types de contenus et des entêtes qui ne sont pas dans la norme de l'API Fetch. Elles sont générées automatiquement par le navigateur web avant l'émission de la requête principale codée par le développeur de l'application web.
Pour plus d'informations, je recommande la lecture de l'excellente page de Mozilla : Cross-origin resource sharing (CORS) - HTTP | MDN.
Je ne sais pas trop pour quelles raisons tu cites mon shaarli, qui date de 2016, mais soit.
Le numéro 22 de La Revue Dessinée (ce que j'en retiens) évoque justement cette expérience et le livre qui la conteste auquel tu fais référence. Dans ce qui suit, je vais beaucoup m'appuyer sur ce numéro de LRD.
Pour ma part, je suis mitigé.
Oui, Zimbardo aurait eu des convictions qui lui viendraient de son enfance dans le Bronx où il se serait intensément interrogé sur "l'origine du mal" en vivant la violence quotidienne de cet arrondissement de New-York. Il a aussi été influencé par la fin des années 60, le début des années 70, la violence institutionnelle de l'armée américaine et de tout l'appareil d'État, notamment au Vietnam. Bref, il aurait orienté son expérience pour servir l'une de ses croyances, en quelque sorte. Fort bien, la psychologie expérimentale peut entraîner des conclusions subjectives, contrairement aux sciences dures.
Oui, il y a eu une scénarisation de l'expérience : le fait que Zimbardo joue le directeur de la prison, le fait de prétendre que c'est sa collaboratrice / petite amie qui l'a ramené à la raison et lui a fait stopper l'expérience, etc. Quel impact concret cela a-t-il eu sur l'expérience ? On relate aussi que Zimbardo a orienté les comportements des cobayes, notamment en étant lui-même le directeur de la fausse prison et en avalisant implicitement, par ce biais-là, le choix fait par les cobayes gardiens de recourir à une escalade de la violence afin d'assouvir leur besoin d'autorité. Je m'interroge : la hiérarchie pénitencière et la hiérarchie policière n'en font-elles pas tout autant ? N'orientent-elles pas les comportements des flics et des matons ? De part leurs discours, les hauts-gradés, notamment le sinistre de l'Intérieur, n'avalisent-ils pas des comportements détestables des flics ? Donc, pour moi, cela n'est pas un argument suffisant pour réfuter Zimbardo.
Des expériences ultérieures mieux bâties ont confirmé certaines des conclusions de l'expérience de Zimbardo. Exemple : en 2010, celle de Campbell-Meiklejohn, à Cambridge, montre que la soumission à une opinion majoritaire active le système de récompense de notre cerveau. Donc l'obéissance dans les pires actions trouve bien son origine, en partie, dans l'environnement (l'idée majoritaire), ce qui va dans le sens de Zimbardo et de son "il n'y a pas de mauvaises personnes, juste des personnes au mauvais endroit, dans le mauvais carcan".
Enfin, l'expérience de Zimbardo semble avoir été utilisée par l'armée américaine pour mieux oppresser les prisonniers, notamment Irakiens (remember Abu-Graib) dans les guerres post-2001. Difficile de prétendre alors qu'elle est une fraude scientifique en totalité.
La CGT, combien de divisions ? Tandis que les premiers délégués faisaient le pied de grue, lundi 13 mai au matin, devant l’accueil du congrès de la confédération à Dijon, les opposants à Martinez procédaient, eux, à d’ultimes réglages au cours d’une dernière réunion… à Montreuil. Pour la première fois depuis la Libération, l’opposition de gauche au secrétaire général représente une force menaçante.
Elle compte — excusez du peu — des fédérations comme celles de la chimie, du commerce et des services, ainsi que des bastions historiques, telles les unions départementales du Nord, des Bouches-du-Rhône, du Val-d’Oise et du Val-de-Marne. Il y a deux mois, ces opposants envisageaient encore de mitonner une candidature contre Martinez. Finalement, ils ont décidé de lui laisser un sursis. Mais, d’ici là, la météo syndicale s’annonce très agitée. En témoignent deux démonstrations de force mêlant, le 27 avril à Paris puis le 1er mai à Marseille, ces opposants aux gilets jaunes et aux Insoumis.
Tapioca englué
Afin de calmer ces impatients, Martinez a d’ailleurs laissé entendre qu’il pourrait partir à mi-mandat. Le secrétaire général sortant doit aussi composer avec un courant « modéré », qui continue de prôner la défense des acquis sociaux par le dialogue. Présent dès la veille de l’ouverture du congrès, Bernard Thibault, qui fut le patron de la CGT pendant quatorze ans, ne s’est pas privé de fustiger, au cœur de sa fan zone, une direction qui ne sait qu’appeler à des manifs et un secrétaire général dont « les épaules ne sont pas assez larges ». Heureusement, on reste entre camarades.
A la veille de l’ouverture du congrès, le moustachu sermonnait les partisans d’une CGT plus tournée vers le combat anticapitaliste, nostalgique de la Fédération syndicale mondiale, qui régnait avant la chute du mur de Berlin. Mais sa seule stratégie, depuis son intronisation, est précisément celle des rouges vifs : enchaîner les journées d’action.
Merci, patron !
« Douze depuis l’arrivée de Macron. Et qu’a-t-il obtenu pour les salariés ? Rien ! » tempête l’un des leaders « réformistes ». Bref, nul ne sait quelle ligne suit Martinez. A part la sienne, évidemment. « Depuis son arrivée, il y a quatre ans, il passe deux jours par semaine à tourner en province pour préparer sa réélection. Il ferait mieux de penser une vraie stratégie », maugrée l’un des anciens salariés de la Confédération. Marcher nuit gravement à la pensée.
Autre souci pour lui : ses « gauchistes » espèrent faire de ce congrès une tribune pour dénoncer son comportement à l’égard des salariés de la CGT, jugé autoritaire. En conséquence, le Général Tapioca vient de retirer la gestion du service d’ordre à la fédération — insuffisamment docile — qui en était chargée. Les remplaçants, recrutés en urgence avant le 1er Mai par l’union régionale d’Ile-de-France, n’ont guère été à la hauteur. La sécurité du congrès a donc été confiée à un privé, fournisseur attitré de la mairie de Dijon, laquelle est dirigée par l’ex-ministre PS du Travail François Rebsamen. Celui-là même contre lequel Martinez avait lancé ses troupes dans la rue.
Exemples d'autoritarisme : Martinez purge la CGT comme un vrai libéral et La CGT combat héroïquement ses ennemis de l’intérieur.
Ah, qu’il est doux d’avoir des ennemis à gauche quand ceux de droite sont trop forts !
L'érosion de la base de la CGT au profit de celle de la CFDT fait s'affoler les loups du troupeau CGT, rien de neuf.
Dans le Canard enchaîné du 15 mai 2019.
On est fort à cheval sur les principes, chez les patriotes et autres frexiters, on est fier, chacun défend ses idées. Simplement, un sou est un sou, et certains n’oublient pas la règle d’airain des élections européennes : les candidats qui n’obtiennent pas 3 % ne sont pas remboursés de leurs frais de campagne, et ceux qui n’atteignent pas 5 % n’ont aucun élu. Alors, quand les sondages sont un peu faiblards, forcément, on cherche des alliances.
Florian Philippot, qui se traîne aux environs de 2 %, est allé voir ses copains Asselineau et Dupont-Aignan pour leur proposer d’intégrer leur liste en bonne place, avec certains de ses partisans, en échange d’un petit magot : 400 000 euros pour Debout la France, 300 000 euros pour l’UFR. Hélas, ces trois grands esprits se snobent. Le bureau national (!) d’Asselineau s’est prononcé contre la proposition de Philippot, et Debout la France l’a refusée avec dédain. Depuis, Asselineau a traité Philippot d’« escroc politique », et, entre Philippot et Dupont—Aignan, l’ambiance est glaciale.
L’union de la droite hors les murs n’est pas pour demain, même en y mettant le prix.
Ho ? Je croyais que y'a que la gauche qui se disperse façon puzzle dans des guéguerres d'égo et d'idéologie. Tous les journaux, y compris le Canard, l'ont écrit / dit en boucle, donc c'est que ça doit être vrai ! M'auraient-ils mentit par omission ?!
Dans le Canard enchaîné du 15 mai 2019.
Lire l'étiquette d’un vêtement avant de l’acheter est devenu une habitude, histoire de ne pas enfiler trop facilement ce joli tee-shirt bariolé cousu par des esclaves à l’autre bout du monde. Souvent, aussi, la question se pose : mais, au fait, combien gagne l’ouvrier qui a assemblé cette petite robe fleurie ?
Le 7 mai, le Centre Stern pour les affaires et les droits de l’homme de l’université de New York a répondu à cette question. Et le résultat de son rapport est glaçant. Bien loin derrière la Chine, qui paie ses petites mains 326 dollars mensuels, le Kenya (207) ou le Bangladesh (95), l’Ethiopie emporte la palme des ouvriers du textile les plus mal payés du monde, avec un salaire moyen équivalent à 23 euros mensuels.
Et que les grincheux ne viennent pas expliquer que cette aumône est en rapport avec le coût de la vie, car, note encore ce rapport, même en Ethiopie, cette somme « ne suffit pas pour vivre » (« Le Point », 8/5).
Ce qui explique que les ouvrières, jeunes paysannes venues à la ville pour la plupart, quittent leur atelier au bout d’un an, épuisées par les conditions de travail et les grèves incessantes, et dégoûtées par leur semblant de revenu.
Ces parcs industriels, qui emploient 70 000 personnes, ont attiré 2,5 milliards de dollars d’investissements étrangers directs (Chine, Inde) au cours de ces neuf mois. Et l’exportation du « made in Ethiopia » rapporte chaque année 103 millions de dollars de devises au pays.
Le nom des marques qui ne répugnent pas à sous-traiter avec Addis-Abeba ? Guess, H&M, Calvin Klein, notamment. Mais difficile de remonter la piste jusqu’aux ateliers de misère.
Sur le site de vente H&M, par exemple, et alors que la marque suédoise se fait fort d’informer sa clientèle de la provenance d’un pull ou d’un chemisier, la Chine, la Roumanie, la Turquie, la Birmanie ou le Cambodge se bousculent, au milieu de quelques articles mystérieux sobrement estampillés : « Malheureusement, les informations relatives aux fournisseurs et aux usines de fabrication ne sont pas disponibles pour ce produit. »
C’est ballet, ça…
J'en étais resté à l'Ouzbekistan et la collecte du coton sous forme de travail forcé par la dictature…
Puisque les salaires ont diminué, les prix de vente auraient dû diminuer… ou alors la richesse a été captée en chemin, par des actionnaires, par exemple, mais je n'ose y croire, cette sauvagerie ne peut pas avoir cours dans un système capitaliste. De même, tout cela fait écho à notre industrialisation au 18e siècle : ils exploitent des femmes (les hommes préférant posséder la terre, travailler au plein-air, hors des contraintes idiotes des possédants), qu'ils font venir à la ville (où elles sont désorientées, mises en concurrence, etc.), à qui ils construisent des villes ouvrières, etc. Bref, on retrouve toute l'analyse de Marx…
La chaîne d'exploitation de l'homme par l'homme m'effraie… L'occident exploite la Chine, l'Inde, le Bangladesh, etc. qui, eux-mêmes, exploitent l'Ouzbekistan et l'Éthiopie…
Dans le Canard enchaîné du 15 mai 2019.
