Donnez vie à vos documents numériques !
 

Verrouiller un fichier PDF

abracadabraPDF Forums PDF – Général Verrouiller un fichier PDF

  • Ce sujet est vide.
  • Créateur
    Sujet
  • #46631
    michel c.
    Participant

    Bonjour,

    je voulais savoir si il est possible de verrouiller un fichier PDF de manière à ce que les scripts fonctionnent mais que ceux-ci ne puissent pas être lus, édités ni modifiés même pour les personnes disposant d’un éditeur PDF.
    Je précise que je ne travaille pas avec l’éditeur d’Adobe mais avec PDF x change editor (je ne trouve pas comment faire, mais si c’est possible avec Acrobat, ça doit surement être faisable avec ce logiciel)
    Merci

Affichage de 13 réponses de 1 à 13 (sur un total de 13)
  • Auteur
    Réponses
  • #69426
    michel c.
    Participant

    Je viens de trouver….

    #69427
    bebarth
    Maître des clés

    bonjour,
    …et bravo mais je pense que cette réponse ne va pas intéresser grand monde si tu n’expliques pas comment !
    @+
    :bonjour:

    #69428
    Merlin
    Maître des clés

    Bonjour

    Oui, ça serait sympa de partager le truc parce-que ça fait plus d’une décennie que je cherche comment faire.

    #69429
    michel c.
    Participant

    Bonjour, après vérification, ça a l’air de fonctionner sur les scripts associées à des boutons ou a des champs mais cela ne masque pas les scripts du document.
    Voici une vidéo montrant ce que je fais (sur un fichier téléchargé sur ce forum) : Lien

    Et un lien vers le fichier : Lien

    #69430
    Merlin
    Maître des clés

    Ça ne protège que contre les grand-mères et ceux qui ne savent pas utiliser Googol, il existe des dizaines de sites et d’utilitaires comme celui-ci :
    https://smallpdf.com/fr/unlock-pdf

    :geek:

    #69431
    michel c.
    Participant

    Ça ne protège que contre les grand-mères et ceux qui ne savent pas utiliser Googol, il existe des dizaines de sites et d’utilitaires comme celui-ci :
    https://smallpdf.com/fr/unlock-pdf

    :geek:

    Mince, je ne pensais pas que ce type de protection ne valait pas un clou…

    #69432
    Merlin
    Maître des clés

    En fait Adobe appelle ça des “Restrictions d’utilisation”, ce n’est pas vraiment une protection, c’est plutôt fait pour éviter les manipulations malencontreuses ou hasardeuses.

    Contrairement au “mot de passe à l’ouverture” qui est une vraie protection (comme la protection par Certificat).

    #69433
    michel c.
    Participant

    J’ai déjà téléchargé des pdf dont le menu formulaire était verrouillé. Comme celui ci ? Lien
    Mon éditeur me précise que les les fonctionnalités d’édition sont limitées car le document contient un formulaire XFA dynamique.
    D’après ce que j’ai lu ICI, cela veut dire que ce type de formulaire pdf est tout de même modifiable avec Adobe Designer ?

    #69434
    Merlin
    Maître des clés

    Les formulaires PDF-XFA ne sont pas des documents PDF, ils utilisent un format propriétaire basé sur XML qui a été encapsulé dans une coquille PDF quand la société créatrice a été rachetée par Adobe dans les années 90.

    Ces formulaires sont pleinement éditables avec Designer et pas du tout avec Acrobat, mais c’est une question de format, pas de protection.

    #69435
    Merlin
    Maître des clés

    Sinon, pour répondre à ton interrogation le moyen de plus souple que j’ai trouvé pour protéger mes scripts c’est de les “minifier”, c’est-à-dire de les réduire juste à ce dont la machine à besoin.
    https://www.it-connect.fr/quest-ce-que-la-minification/
    https://javascript-minifier.com/
    https://jscompress.com/

    On peut aussi “obfusquer” les scripts, c’est-à-dire minifier + rendre difficile à lire (ce n’est pas du chiffrage), mais l’inconvénient c’est que la plupart des antivirus et antispams rejettent les PDF dont les scripts sont obfusqués, puisqu’ils ne peuvent pas lire les scripts et qu’ils sont justement faits pour éviter les scripts malicieux.

    #69436
    michel c.
    Participant

    Donc pas de possibilité d’avoir une forme de propriété intellectuelle sur des scripts inclus dans les pdf. Si vous vendez à un client des formulaires, rien n’empêche l’échange et la diffusion des scripts inclus dans les documents ?

    #69437
    Merlin
    Maître des clés

    Si bien sur, tu as la propriété intellectuelle du script.
    Il faut voir ça comme un roman ou un article, tu en es l’auteur, tu en as les droits et tout le monde peut le lire.

    La différence c’est qu’on peut publier nos scripts sans mise en page, sans espace, sans ponctuation, etc. en les minifiant.
    On peut aussi les noyer dans un flot de fonctions redondantes ou inutiles.  :geek:

    L’idée c’est de rendre la copie ou la réutilisation du script plus compliquée qu’une création ex nihilo.
    L’expérience montre que même s’il est soigneusement commenté et avec des variables bien nommées il est toujours difficile de reprendre un script (complexe) qu’on n’a pas créé, alors reprendre un script “unminified” (déminifié) brut de décoffrage… Bon courage !  :mur:

    #69438
    bebarth
    Maître des clés

    bonjour,
    Effectivement, si le décryptage d’un script minifié n’est pas impossible, ça demande un petit niveau quand même !
    Et si la personne a un certain niveau en JavaScript, ça lui prendra certainement plus de temps à décrypter et interpréter un script qu’à en re-écrire un.
    En minifiant, les noms des variables que l’on a soigneusement nommés pour mieux les interpréter sont renommés avec des lettres et les égalités, conditions etc sont réécrites avec un script minimum.
    Voici par exemple une fonction telle que je l’ai écrite :

    Code:
    function simplify(str) {
        var result=””;
        var data=str.split(“/”);
        var numOne=Number(data[0]);
        var numTwo=Number(data[1]);
        for (var i=Math.max(numOne,numTwo); i>1; i–) {
            if (numOne%i==0 && numTwo%i==0) {
                numOne/=i;
                numTwo/=i;
            }
        }
        if (numTwo===1)  result=numOne.toString();
        else result=numOne.toString()+”/”+numTwo.toString();
        return result;
    }

    MInifiée, elle donne :

    Code:
    function simplify(t){for(var r=t.split(“/”),i=Number(r[0]),n=Number(r[1]),o=Math.max(i,n);o>1;o–)i%o==0&&n%o==0&&(i/=o,n/=o);return 1===n?i.toString():i.toString()+”/”+n.toString()}

    Ensuite, re-écrite plus proprement avec Online javaScript beautifier (https://beautifier.io/) :

    Code:
    function simplify(t) {
        for (var r = t.split(“/”), i = Number(r[0]), n = Number(r[1]), o = Math.max(i, n); o > 1; o–) i % o == 0 && n % o == 0 && (i /= o, n /= o);
        return 1 === n ? i.toString() : i.toString() + “/” + n.toString()
    }

    Tu vois, ce n’est quand même pas pareil !
    Si tu minifies un script, n’oublie donc pas de garder une version originale, car même toi, tu auras un peu de mal à relire ce script…
    @+
    :bonjour:

Affichage de 13 réponses de 1 à 13 (sur un total de 13)
  • Vous devez être connecté pour répondre à ce sujet.