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

JavaScript Discussion :

Accès fichier js et CSP


Sujet :

JavaScript

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Auditeur informatique
    Inscrit en
    Mai 2021
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Auditeur informatique

    Informations forums :
    Inscription : Mai 2021
    Messages : 8
    Points : 6
    Points
    6
    Par défaut Accès fichier js et CSP
    Bonjour a tous,

    J'essaie de faire une app en electron js, mais je suis bloqué pour accéder a mon fichier javascript à cause de CSP.

    voici le message d'erreur :
    Refused to execute inline event handler because it violates the following Content Security Policy directive: "script-src 'self'". Either the 'unsafe-inline' keyword, a hash ('sha256-...'), or a nonce ('nonce-...') is required to enable inline execution. Note that hashes do not apply to event handlers, style attributes and javascript: navigations unless the 'unsafe-hashes' keyword is present.
    et voici mon
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <meta http-equiv="Content-Security-Policy" content="default-src 'self'; script-src 'self'">
    [...]
        <div>
            <label><input type="checkbox" name="check" value="1" onclick="onlyOne(this)">Default parameters</label>
            <label><input type="checkbox" name="check" value="2" onclick="onlyOne(this)">Change parameters</label>
        </div>

    mon js :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    function onlyOne(checkbox) {
        var checkboxes = document.getElementsByName('check')
        checkboxes.forEach((item) => {
            if (item !== checkbox) item.checked = false
        })
    }
    Je n'arrive pas a autoriser la lecture de mon fichier js sans retirer ma balise Content Security Policy et donc perdre en sécurité.

    Merci d'avance pour votre aide.

  2. #2
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 634
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 634
    Points : 66 650
    Points
    66 650
    Billets dans le blog
    1
    Par défaut
    Tu ne nous montres pas comment tu appelles le fichier js ...

    jette un oeil là dessus
    https://content-security-policy.com/script-src/
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Auditeur informatique
    Inscrit en
    Mai 2021
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Auditeur informatique

    Informations forums :
    Inscription : Mai 2021
    Messages : 8
    Points : 6
    Points
    6
    Par défaut
    j'ai déjà essayé plusieurs solutions via ce site mais ç’a n'a pas marché

    chemin du fichier = "../js/recon.js"

  4. #4
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 634
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 634
    Points : 66 650
    Points
    66 650
    Billets dans le blog
    1
    Par défaut
    En théorie:
    <!-- allowed by 'self' -->
    <script src="/js/some-file.js"></script>
    dans la pratique, tu ne nous montres pas l'intégralité du code de mise en oeuvre ...


    Un peu plus de lecture sur le sujet
    https://developer.mozilla.org/fr/docs/Web/HTTP/CSP
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  5. #5
    Membre confirmé
    Homme Profil pro
    OoW
    Inscrit en
    Juin 2019
    Messages
    133
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : Ukraine

    Informations professionnelles :
    Activité : OoW

    Informations forums :
    Inscription : Juin 2019
    Messages : 133
    Points : 462
    Points
    462
    Par défaut
    \ô/
    il me semble qu'un événement déclaré inline, comme
    Code HTML : Sélectionner tout - Visualiser dans une fenêtre à part
    <label><input type="checkbox" name="check" value="1" onclick="onlyOne(this)">
    n'est pas pris en compte , il faut passer par des addEventListener.

  6. #6
    Futur Membre du Club
    Homme Profil pro
    Auditeur informatique
    Inscrit en
    Mai 2021
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Auditeur informatique

    Informations forums :
    Inscription : Mai 2021
    Messages : 8
    Points : 6
    Points
    6
    Par défaut
    Je pense avoir trouvé la bonne solution grâce a nonce :

    Code html : 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
    19
    20
    <!DOCTYPE html>
    <html>
      <head>
        <meta charset="UTF-8">
        <!-- https://developer.mozilla.org/en-US/docs/Web/HTTP/CSP -->
        <link rel="stylesheet" href="../css/index.css" type="text/css">
        <link rel="stylesheet" href="../css/recon.css" type="text/css">
        <meta http-equiv="Content-Security-Policy" content="default-src 'self'; script-src 'nonce-rCkDzsvsdcsd+0fr8ylGr' 'self' ">
        <title>Allin</title>
      </head>
      <body>
        <header>
        <div>
          <label><input type="checkbox" id="check1" value="1">Default parameters</label>
          <label><input type="checkbox" id="check2" value="2" >Change parameters</label>
          <input type="text" class="css-input" placeholder="   Enter domain name"/>
        </div>
      </body>
      <script nonce="rCkDzsvsdcsd+0fr8ylGr" src="../js/recon.js"></script>
    </html>

    J'aimerais juste savoir si c'est bon niveau sécurité pour vous ? comme çà je pourrais mettre en résolu

  7. #7
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 634
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 634
    Points : 66 650
    Points
    66 650
    Billets dans le blog
    1
    Par défaut
    Heu il est facile de recopier le code et d'intégrer une balise script pas code en lui attribuant ce même code non ?
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  8. #8
    Futur Membre du Club
    Homme Profil pro
    Auditeur informatique
    Inscrit en
    Mai 2021
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Auditeur informatique

    Informations forums :
    Inscription : Mai 2021
    Messages : 8
    Points : 6
    Points
    6
    Par défaut
    Ok je suis retourné sur ce que j'avais au départ comme meta balise mais j'utilise plus ma fonction directement dans mon html mais uniquement une balise script qui charge mon fichier js qui marche avec un event listener.
    Ligne 9 et 19
    Code html : 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
    19
    20
     
    <!DOCTYPE html>
    <html>
      <head>
        <meta charset="UTF-8">
        <!-- https://developer.mozilla.org/en-US/docs/Web/HTTP/CSP -->
        <link rel="stylesheet" href="../css/index.css" type="text/css">
        <link rel="stylesheet" href="../css/recon.css" type="text/css">
        <meta http-equiv="Content-Security-Policy" content="default-src 'self'; script-src 'self'"> <!-- ICI -->
        <title>Allin</title>
      </head>
      <body>
        <div>
          <label><input type="checkbox" id="check1" value="1">Default parameters</label>
          <label><input type="checkbox" id="check2" value="2" >Change parameters</label>
          <input type="text" class="css-input" placeholder="   Enter domain name"/>
        </div>
      </body>
      <script src="../js/recon.js"></script> <!-- et ICI-->
    </html>

    Merci beaucoup pour votre aide !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [C#] Accès fichiers Internet
    Par joujou_le_fou dans le forum Windows Forms
    Réponses: 5
    Dernier message: 04/08/2004, 13h49
  2. [tomcat]acces fichier dans contexte
    Par krollette dans le forum Tomcat et TomEE
    Réponses: 2
    Dernier message: 23/01/2004, 15h17
  3. pb service NT / accès fichier
    Par gord's dans le forum API, COM et SDKs
    Réponses: 3
    Dernier message: 24/07/2003, 18h20
  4. [Kylix] accés fichiers
    Par sdoura dans le forum EDI
    Réponses: 4
    Dernier message: 08/10/2002, 20h33

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