PROJET AUTOBLOG


Warrior du Dimanche

Site original : Warrior du Dimanche

⇐ retour index

Plugin PluXML : Empêcher pluXML de virer les backslashes des articles

vendredi 25 août 2023 à 12:33

Ze problaim

Si tu publies des bouts de code sur pluXML, tu as sans doute remarqué que ce dernier est pour le moins psychorigide avec les antislashes: il les vire sans ménagement... pourtant, on aimerait bien qu'il conserve les regex en l'état dans un code par exemple.

Je suis pas stupide, je comprends bien qu'il s'agit là d'un souci de sécurité, mais quand même, ça fait ch***.

Le souci,c'est que pluXML filtre les antislashes dans les $_POST très très tôt dans le code, bien avant tout hook de plugin: il le fait dans le prepend.php de l'admin, ligne 43.

Ben mon con, comment tu vas faire si tu peux pas intervenir en php via un hook pour modifier le $_POST?

Ze solouchonne

Ben tu le modifies en JS dans la page article lors du submit du formulaire

En gros, on remplace les «\» par des «\» dans le chapo et le avant de submit le formulaire. C'est une méthode dont j'ai trouvé l'idée ici https://forum.pluxml.org/discussion/6960/plugin-plx-cssbackslash-pour-ledition-des-fichiers-css

Donc, j'injecte un petit script JS via le hook AdminArticleFoot et il se charge d'intervenir lorsque le navigateur a terminé de créer l'objet formData: c'est d'ailleurs cet évènement qu'on va utiliser dans addEventListener au lieu du submit habituel.

Code du script injecté

(function (){
    let chapo = document.getElementById("id_chapo");
    var content = document.getElementById("id_content");
    var form = document.getElementById("form_article");
    function saveSlashes(str){
        return str.replace(/[\\]/g, '\\$&');
    }
    form.addEventListener('formdata',function(e){
        let formData = e.formData;
        formData.set('chapo', saveSlashes(formData.get('chapo')));
        formData.set('content', saveSlashes(formData.get('content')));
    });

})();

Ze saiquiouriti ?

Niveau sécurité, le plugin n'intervient que sur la page article.php et uniquement sur les champs chapo et content du formulaire. Il ne bloque pas le plxUtils::unSlash($_POST) du prepend.php. Je pense donc qu'il n'ouvre pas de faille majeure.

Ze conclugionne

Ainsi, les antislashes de ce script tiré de l'article sur le bug de mpdération passent enfin sans problème :

Exemple de code problématique

    const PATTERNS = array(
        'arts'          => '#^\D?(\d{4,})\.(?:\w+|\d{3})(?:,\w+|,\d{3})*\.\d{3}\.\d{12}\..*\.xml$#',
        'statiques'     => '#^(\d{3,})\..*\.php$#',
        'commentaires'  => '#^_?\d{4,}\.(?:\d{10,})(?:-\d+)?\.xml$#'
    );

Le zip est à télécharger depuis mon repo : https://repo.warriordudimanche.net/ZIPFILES/ArticleBackslashesKeeper.zip

<link rel="stylesheet" href="http://www.warriordudimanche.net/./plugins/Galart/style.css"/> <link rel="stylesheet" href="http://www.warriordudimanche.net/./plugins/Galart/assets/lightbox.css"/> <script src="http://www.warriordudimanche.net/./plugins/Galart/assets/lightbox.js"> <script>[].forEach.call(document.querySelectorAll("[lightbox]"), function(el) { el.lightbox = new Lightbox(el);});

► Commentaires

Lire vos ebooks comme si c’était des vieux livres

jeudi 24 août 2023 à 15:46

Wow, sympa ça ! Je teste de suite ! Je me demande ce que ça donnerait avec la fonte Old Newspaper Types (https://www.dafont.com/fr/oldnewspapertypes.font?fpp=200&a=on)

[EDIT] Pas moyen de faire appliquer les fontes proposées par le site toutefois, la old newspaper fonctionne bien :

IMG 20230824 155716.webp

En tout cas, merci copain !

<link rel="stylesheet" href="http://www.warriordudimanche.net/./plugins/Galart/style.css"/> <link rel="stylesheet" href="http://www.warriordudimanche.net/./plugins/Galart/assets/lightbox.css"/> <script src="http://www.warriordudimanche.net/./plugins/Galart/assets/lightbox.js"> <script>[].forEach.call(document.querySelectorAll("[lightbox]"), function(el) { el.lightbox = new Lightbox(el);});

► Commentaires

Brico: T'as bourré ?

jeudi 24 août 2023 à 11:12
Pardon pour ça

Mes deux grands emménagent dans leur appart étudiant la semaine prochaine et il leur fallait un repose-pied pour leur bureau... j'ai donc bricolé deux tabourets décorés à la graveuse laser.

Le premier pour ma fille

J'ai récupéré un dessin de Sarah Kay, je l'ai passé à l'Upscayl, j'ai ajouté le texte puis je l'ai importé dans laserGRBL.

Une fois terminé elle s'est exclamé «OOOOOooooooooooooOOOOOoooooohh c'est troooooooop meuuuuuuuuugnôôôôôôôôn !»

IMG 20230823 133840.webp IMG 20230823 133830.webp IMG 20230823 134419.webp

Le second pour mon fils

Gamer et futur étudiant en sécurité informatique, je le voyais mal se livrer aux mêmes cris émus que sa soeur si je lui faisais un sarah Kay... je suis plutôt parti vers un esprit plus Fallout.

J'ai récupéré plusieurs Vault boy que j'ai nettoyés puis vectorisés. J'ai tipiak la fonte de fallout puis j'ai composé l'image que vous voyez ci-dessous (que vous pouvez récupérer si vous voulez )

nico.svg
IMG 20230824 102014.webp

Note au passage

Coût total de l'opération: peanuts. Tout le bois et la visserie sont de la récup' - fruit d'une tendance de fourmi à ne rien jeter, accumulant harpagonesquement les bouts de machins comme un dragon sur son tas d'or... ça prend de la place, mais des fois ça sert.

Petite astuce pour bien placer le support à graver

Placer correctement son support puis configurer correctement le logiciel pour que le dessin se trouve à la bonne place, ça peut rapidement tourner à la blitzkrieg. Du coup, je vous donne une petite astuce:

  1. tracez un repère au centre du support
  2. placez le support bien parallèle au bord bas de la graveuse, le plus près de l'origine.
  3. une fois importé le dessin, cliquez sur center afin de positionner la tête au centre du dessin et cliquez sur le bouton servant à faire apparaître le laser
  4. déplacez la tête du laser pour faire correspondre ce dernier avec le repère tracé
  5. cliquez sur corner pour que la tête revienne au coin bas gauche
  6. lancez la gravure.
<link rel="stylesheet" href="http://www.warriordudimanche.net/./plugins/Galart/style.css"/> <link rel="stylesheet" href="http://www.warriordudimanche.net/./plugins/Galart/assets/lightbox.css"/> <script src="http://www.warriordudimanche.net/./plugins/Galart/assets/lightbox.js"> <script>[].forEach.call(document.querySelectorAll("[lightbox]"), function(el) { el.lightbox = new Lightbox(el);});

► Commentaires

Cent ans de solitude : Alex García López et Laura Mora à la réalisation

mardi 22 août 2023 à 18:25

Omagad ! Là, ils n'ont pas le droit de se louper !

Je te rejoins totalement Sammy: le monument de complexité que représente l'adaptation en série de ce labyrinthe littéraire.

Rien que l'arbre généalogique de la famille Buendía...

Via https://www.sammyfisherjr.net/Shaarli/?73WRqw
<link rel="stylesheet" href="http://www.warriordudimanche.net/./plugins/Galart/style.css"/> <link rel="stylesheet" href="http://www.warriordudimanche.net/./plugins/Galart/assets/lightbox.css"/> <script src="http://www.warriordudimanche.net/./plugins/Galart/assets/lightbox.js"> <script>[].forEach.call(document.querySelectorAll("[lightbox]"), function(el) { el.lightbox = new Lightbox(el);});

► Commentaires

19 licences méconnues et inhabituelles

dimanche 20 août 2023 à 14:45
./plugins//WDDWebLinks/default_image.jpg

Tout le monde connaît les licences libres habituelles mais il y en a de moins connues et - souvent - moins compliquées à comprendre : petit florilège...

Les licences les plus libres

La WTFPL

Do What The Fuck You Want to Public License - https://fr.wikipedia.org/wiki/WTFPL

Permet de distribuer avec le même niveau de protection que le domaine public, c'est-à-dire AUCUN.

La Beerware

Beerware licence - https://en.wikipedia.org/wiki/Beerware#License

Faites ce que vous voulez et si un jour on se rencontre et que vous trouvez que mon boulot en vaut la peine, payez-moi une bière.

La Bugroff

No problem Bugroff License - http://tunes.org/legalese/bugroff.html

La réponse à toute question à propos des droits de reproduction ou problème légal est : «Sure, No problem. Don't worry, be happy. Now bugger off»

La DAMAIL

Don’t Ask Me About It License

En gros, faites ce que vous voulez et ne me contactez pas.

La GLWTPL

Good Luck With That Public License - https://github.com/me-shaon/GLWTPL

Démerde-toi, demande pas d'aide et - surtout - ne dis à personne que ça vient de moi...

La Woody Guthrie

The Woody Guthrie Public License

«Toute personne qu'on prendra à distribuer ce livre sans permission se verra considéré comme un super pote parce qu'on en a rien à foutre...»

La DSSL

Demerden Sie Sich License - https://dssl.flyounet.net/licenses/

Littéralement, la Licence Démerdez-vous... Je vous laisse la lire tranquilou pour vous faire une idée: toute tentative de résumé serait une trahison du texte original

«Cette Licence» se réfère à la version 1 de la «Demerden Sie Sich License» (le texte original en français). «Démerder», se réfère au sens de se «débrouiller». A aucun moment «cette Licence» ne vous demandera de vous enduire (vous ou votre œuvre) d'excréments humains (ni même animal). «Œuvre» est aussi appelée «travail» (quelques fois, l'extension «de sagouin» peut lui être apposée), «programme» ou tout autre terme relatif à ce qui a été effectué. Ainsi, une «documentation» ou un «manuel» peut être considéré comme une œuvre. «Auteur» signifie que la personne (ou groupe de personnes), qui utilise «cette Licence», se lave complètement les mains de la façon dont vous utiliserez son œuvre.

L'«Auteur» peut-être considéré comme irresponsable et il incombe à l'utilisateur en priorité de se «démerder» par lui même.


Les licences les plus WTF

La D&R

The Death and Repudiation License

This software may not be used directly by any living being.

En gros, l'usage à toute personne vivante est formellement interdit.

La CDL

Chicken dance license - https://github.com/supertunaman/cdl/blob/master/COPYING

Conditions très exotiques pour cette licence qui régule drastiquement la redistribution des copies du code:

La FCL

The Fight Club Licence - https://github.com/benlk/misc-licenses/blob/master/fight-club-license.md

  • You do not talk about the FIGHT CLUB LICENSE.
  • You DO NOT talk about the FIGHT CLUB LICENSE.
  • If someone says "stop" or goes limp — or taps out — the project is over.
  • Only two developers to a project.
  • One project at a time.
  • No shirts, no shoes.
  • Projects will go on as long as they have to.
  • If this is your first time reading the FIGHT CLUB LICENSE, you HAVE to license your next project under the FIGHT CLUB LICENSE.

La OGPITAL

The Offendo General Pain In The Ass License

L'auteur de toute modification doit redistribuer le travail modifié par un moyen plus contraignant et difficile que celui par lequel il a acquis le code original.

La Licence de Schrödinger

https://github.com/benlk/misc-licenses/blob/master/schrodinger-license.md

Heu, là, je vous laisse aller la voir tous seuls.... passque bobo têtête.

La Bugs

The Bugs License r2 - https://github.com/benlk/misc-licenses/blob/master/bugs-license.md

Pour faire court, c'est pas un bug c'est une fonctionnalité...

  • Bugs in the licensed work are features, to be cherished, documented, and developed upon.
  • Modified works must not include known bugs.
  • Where identified, modified works' bugs shall be fixed.
  • Authors and maintainers of the licensed work reserve the right to pull bug fixes from modified or derivative works without compensation, recognition, or any other reference to the authors of the bug fix.

La ABSL

The Anyone But Stallman License - https://github.com/benlk/misc-licenses/blob/master/stallman-license.md

Je crois que c'est clair...

La Méphisto

The Mephistopheles License - https://github.com/benlk/misc-licenses/blob/master/mephistopheles-license.md

Tu veux redistribuer ?! signe ici... avec ton sang.

La WTFWYEDTHS

Why The Fuck Would You Even Do That Holy Shit Public License - https://git.sr.ht/~boringcactus/gotbruh/tree/main/item/LICENSE.md

Seule restriction : il est définitivement et formellement interdit de refactorer ce logiciel en Python 2.


Les plus utilisables en vrai

La DBAD

Don't be a dick License - https://dbad-license.org/

Une licence qui autorise tout avec pour seule condition de ne pas être un connard (a dick)... l'auteur fournit une liste non exhaustive de ce qu'il appelle être un connard:

L' ACSL

Anti-Capitalist Software License [non «libre»]- https://anticapitalist.software/

Vous voulez partager un logiciel ou un code en interdisant toute exploitation commerciale capitaliste et libérale ? Cette licence permet de restreindre l'usage et l'exploitation à certains types d'utilisateurs:

La Please

The please public licence - https://web.archive.org/web/20200814151216if_/https://awoo.space/@typhlosion/1433790

L'utilisateur a le droit... de demander la permission et l'auteur a l'obligation d'accepter

Sources :

<link rel="stylesheet" href="http://www.warriordudimanche.net/./plugins/Galart/style.css"/> <link rel="stylesheet" href="http://www.warriordudimanche.net/./plugins/Galart/assets/lightbox.css"/> <script src="http://www.warriordudimanche.net/./plugins/Galart/assets/lightbox.js"> <script>[].forEach.call(document.querySelectorAll("[lightbox]"), function(el) { el.lightbox = new Lightbox(el);});

► Commentaires