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 :

json + javascript


Sujet :

JavaScript

  1. #1
    Membre confirm�
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    96
    D�tails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2007
    Messages : 96
    Par d�faut json + javascript
    bonjour a tous je d�veloppe une extension chrome, qui bloque une liste d�URL d�finie par moi m�me, actuellement plus de 2 millions d'urls, que j'update toutes les semaines, mon extension chrome fonctionne nickel mais le probl�me c'est que toutes les URL sont stock�es dans le background.js

    voici mon manifest.json:

    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
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    {
    "name":"blocker",
    "description":"myapp",
    "version":"1.0",
    "manifest_version":2,
    "permissions": [
            "http://*/*",
            "https://*/*",
            "webRequest",
            "webRequestBlocking",
            "webNavigation",
            "storage",
            "unlimitedStorage"
    ]      
    ,"icons":{"48":"icon.png"},
    "background":{
        "scripts": ["background.js"]
    },
    "browser_action":{
        "default_popup":"popup.html",
        "default_icon":"icon.png"},
    	"content_scripts": [
    		{
    			"matches": ["*://*/*"],
    			"js": ["disablef12.js"]
    		}
    	]
    }
    en gros j'ai remplace mon code background.js:

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    chrome.webRequest.onBeforeRequest.addListener(
    function(details) {
    return {cancel: true}; 
    }, { urls: 
    [
    "*://*.url1/*",
    "*://*.url2/*",
    etc...
    ]},["blocking"]),
    on m'a conseill� de remplacer mon code background.js par �a.

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
     
    var URL= {
    "http://url1": false,
    "https://url2": false,
    "http://url3": false
    etc...
    };
    chrome.webRequest.onBeforeRequest.addListener(function(details) { return {cancel: !URL[details.url] }; }, null,["blocking"]);
    le probl�me c'est que le deuxi�me code la, ne fonctionne pas, �a ne bloque plus mes URL...
    quelqu�un peut m'aider, merci.

  2. #2
    R�dacteur/Mod�rateur

    Avatar de SylvainPV
    Profil pro
    Inscrit en
    Novembre 2012
    Messages
    3 375
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2012
    Messages : 3 375
    Par d�faut
    Pour reprendre la discussion (dommage que le topic ait �t� supprim� et non censur�, au moins on aurait gard� l'historique), je viens corriger mon propre code :

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    return{cancel:URL[details.url]===false }
    sinon en principe toutes les URL qui n'�taient pas dans la liste seraient bloqu�es, ce qui je me doute n'est pas ce que tu veux.

    En creusant un peu la doc, je m'aper�ois que le param�tre filtre doit �tre explicitement pass� � {urls: ["<all_urls>"]}, pour cibler toutes les URL. Ce qui donnerait :

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    var AUTHORIZED_URLS= { "http://url1": false, "https://url2": false, "http://url3": false etc... }; chrome.webRequest.onBeforeRequest.addListener(function(details) { return {cancel: AUTHORIZED_URLS[details.url]===false }; }, {urls: ["<all_urls>"]},["blocking"]);
    Toutefois, la doc dit aussi que cibler toutes les URL pour un filtrage est moins efficace que de stipuler les urls en second argument de addListener. Auquel cas je ne comprends pas d'o� peut venir la lenteur, si c'est la fa�on recommand�e de faire. Enfin, tu peux toujours tester comme �a et voir s'il y a une diff�rence.

  3. #3
    Membre confirm�
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    96
    D�tails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2007
    Messages : 96
    Par d�faut
    un tout gran merci a toi sylvain, test le seul qui m'aide je vais tester ca de suite

  4. #4
    Membre confirm�
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    96
    D�tails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2007
    Messages : 96
    Par d�faut
    comem je le disais, ton aide m'a apport� un gros depanage, le script fonctionne nickel, et ce malgr� les millions d'urls que j'ai mis,

    Autre question, est il possible de faire en sorte que au lieu que les urls soient dans le background.js, ils soient ailleurs, dans un autre fichier planqu� sur le hdd, que le background.js bloquerait? afin que les urls, soient le moins visibles aux utilisateurs trop curieux

    quand je vois le script aussi nu sur la console c'est flippant

  5. #5
    R�dacteur/Mod�rateur

    Avatar de SylvainPV
    Profil pro
    Inscrit en
    Novembre 2012
    Messages
    3 375
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2012
    Messages : 3 375
    Par d�faut
    Non, � partir du moment o� c'est stock� en clair c�t� client, n'importe quel curieux peut r�cup�rer les informations tr�s facilement, peu importe le fichier o� elles se trouvent. A la rigueur, tu peux essayer d'obfusquer les donn�es ou de faire de la comparaison de hashs. Mais je pense que n'importe quel amateur de crypto sera capable de d�coder �a assez vite.

  6. #6
    Membre confirm�
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    96
    D�tails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2007
    Messages : 96
    Par d�faut
    justement cot� client, ca ne peut pas se faire, mais est ce qu'il n'y a pas moyen de stocker les urls sur un fichier dans un serveur et de faire en sorte que le background cheque les urls dans le fichier sur le serveur? plutot que de stocker ca sur le hdd?

  7. #7
    R�dacteur/Mod�rateur

    Avatar de SylvainPV
    Profil pro
    Inscrit en
    Novembre 2012
    Messages
    3 375
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2012
    Messages : 3 375
    Par d�faut
    Ton background.js s'ex�cute c�t� client, ce n'est pas lui qui va faire des actions sur un fichier stock� c�t� serveur. Par contre, tu peux envisager un WebService prenant en param�tre l'URL en entr�e et qui donne en sortie le statut autoris�/pas autoris�. De cette mani�re, la liste compl�te pourrait �tre totalement invisible. Seulement, cela implique de faire une requ�te vers ton serveur � chaque URL charg�e par le navigateur : autrement dit doubler le nombre de requ�tes ! Donc �a ne me para�t pas une bonne id�e.

  8. #8
    Membre Expert
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    1 132
    D�tails du profil
    Informations personnelles :
    �ge : 53
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 132
    Par d�faut
    Bonjour,

    Si background.js peut �tre "minified"/"obfuscated" c'est � peu pr�s tout ce qui peut �tre fait.

  9. #9
    Expert confirm�
    Avatar de Auteur
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    7 660
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 7 660
    Par d�faut
    bonjour imothep85,

    Citation Envoy� par imothep85
    je d�veloppe une extension chrome, qui bloque une liste d�URL d�finie par moi m�me
    si tu souhaites bloquer l'acc�s � certains sites web pourquoi ne pas utiliser le fichier hosts du syst�me d'exploitation ?

  10. #10
    Membre confirm�
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    96
    D�tails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2007
    Messages : 96
    Par d�faut
    j'ai egalemment fait un fichier host et t�st�... avec 127.0.0.0 url, le probleme cest que la ou je bosse on a un serveur interne, et du coup ca a foutu le borel monstre tout le reseau etait satur� par les appels, alors jai tout mis en 0.0.0.0 la ca marchait

    le probleme c'est que je ne veux pas que l'utilisateur puisse acceder a ces millions d'urls que j'update toutes les semaines

    de plus windows vista, bloque le host, mais y a moyen de le copier et l'installer manuellement,
    windows 7 c'est pire car microsoft security essential trouve le fichier host, voit les urls et l'efface, javais beau remettre les urls dans le host il etait aussitot vid�, pareil pour avast, il effacait les urls....donc host, non.

  11. #11
    Expert confirm�
    Avatar de Auteur
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    7 660
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 7 660
    Par d�faut
    Quand tu modifiais le fichier hosts tu �tais bien en mode administrateur ?
    Sinon comme tu as un serveur, tu dois peut-�tre configurer le pare-feu ? (je me trompe peut-�tre, je ne suis pas sp�cialiste dans ce domaine)

    Ta solution a des d�fauts � mes yeux : quelqu'un peut supprimer ou d�sactiver ton extension. Et comme tu l'as indiqu�, elle ne fonctionne que sous Chrome. De plus il faut penser � l'installer sur tous les PC puisque le fichier des url est du cot� client. (d�sol� je suis pessimiste )

  12. #12
    Membre confirm�
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    96
    D�tails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2007
    Messages : 96
    Par d�faut
    oui je suis en mode super admin sur ma machine, le probleme cest que une fois mon fichier host modifi� il lancait des requettes sans arret, du coup toutes les machines du reseau etaient super lentes pour acceder au web.
    avec 0.0.0.0 ca marche nikel, mais le host est utilisable par nimporte qui, il a un avantage, il fonctionne partout, mac/pc/linux etc

    mais comme je le disais les os recents effacent, vident le host automatiquement, car certains des urls inclus dedans sont des sites de scam, et les antivirus les considerent comme une menace.
    de plus dans beaucoup de boites, les logiciels sont tous pirates, tres peu de logiciels officiels...mais ca c'est aun autre debat.


    bref, mon app extension chrome fonctionne nickel, il faudrait juste que je puisse la bloquer/forcer a ce quelle reste install�e ou un truc du genre ou ajouter un mot de passer pour y acceder

  13. #13
    Membre confirm�
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    96
    D�tails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2007
    Messages : 96
    Par d�faut
    je viens de remarque que le script pour lequel tu mas aid�, "SylvainPV" ne bloque plus les pages des sites, il ne bloque que les noms de domaines, mais si un site s'apelle par ex, "cucu.com/cucu.jpg" lui ne sera pas bloqu�, alors qu'avec l'ancien system tout ce qui dependait du nom de domaine etait bloqu�....c'est tres tres problematique...

    ta methode fonctione, elle bloque les sites mais pas tout ce qui en depend, je vviens de retester, mes 2millions d'urls/noms de domaines eux sotn bien bloqu�s, mai sir je vaus sur l'un deux, qui ne fonctionne pas, et que j'ajoute /gallery.....ben c'est la cata...car on y a acces :s

  14. #14
    Membre confirm�
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    96
    D�tails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2007
    Messages : 96
    Par d�faut code
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    function simple_domain(url)    {
        var matches = url.match(/^https?\:\/\/([^\/?#]+)(?:[\/?#]|$)/i);
        return matches[1];
    }


    donc pour l'instant dans mon background j'ai:

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    var AUTHORIZED_URLS= {
    "http://url1/": false,
    };
    chrome.webRequest.onBeforeRequest.addListener(function(details) { return {cancel: AUTHORIZED_URLS[details.url]===false }; }, {urls: ["<all_urls>"]},["blocking"]);



    je replace le code par ceci?

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    function simple_domain(url)   
    = {
    "http://url1/"
    };
     
     {
        var matches = url.match(/^https?\:\/\/([^\/?#]+)(?:[\/?#]|$)/i);
        return matches[1];
    }

  15. #15
    Membre �m�rite

    Profil pro
    Inscrit en
    Juin 2007
    Messages
    748
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 748
    Par d�faut
    c'est un peu le syst�me de "l'accord parentale" non?

    celui qui peu g�rer ca c'est logiquement le routeur ( la box, le serveur entreprise, l'ordi...) , pas vraiment besoin de faire une extension si?

    genre, tu donnes a ta box la liste des urls pas permises... une fois pas semaine, tu met ca en tache chron , et je pense m�me que tu peu peu faire du server to server donc mettre ta list en service ailleurs sur la toile.

    peu �tre j'imagine mais je pense que c'est proche de la r�alit�


  16. #16
    R�dacteur/Mod�rateur

    Avatar de SylvainPV
    Profil pro
    Inscrit en
    Novembre 2012
    Messages
    3 375
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2012
    Messages : 3 375
    Par d�faut
    Citation Envoy� par imothep85 Voir le message
    je viens de remarque que le script pour lequel tu mas aid�, "SylvainPV" ne bloque plus les pages des sites, il ne bloque que les noms de domaines, mais si un site s'apelle par ex, "cucu.com/cucu.jpg" lui ne sera pas bloqu�, alors qu'avec l'ancien system tout ce qui dependait du nom de domaine etait bloqu�....c'est tres tres problematique...

    ta methode fonctione, elle bloque les sites mais pas tout ce qui en depend, je vviens de retester, mes 2millions d'urls/noms de domaines eux sotn bien bloqu�s, mai sir je vaus sur l'un deux, qui ne fonctionne pas, et que j'ajoute /gallery.....ben c'est la cata...car on y a acces :s
    Oui, je t'avais pr�venu, c'est beaucoup moins flexible que les regex et il faut que l'URL corresponde EXACTEMENT. Si tu veux r�cup�rer le domaine, tu peux l'extraire en JavaScript mais du coup tu perds un peu le gain de performance initial. Voil� un benchmark comparant les perfs de 3 fa�ons de r�cup�rer le domaine :
    http://jsperf.com/hostname-from-url

    La plus rapide (mais aussi la plus simple, � voir si elle g�re tous les cas) est :

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
     
    function simple_domain(url)    {
        var matches = url.match(/^https?\:\/\/([^\/?#]+)(?:[\/?#]|$)/i);
        return matches[1];
    }
    donc tu l'appliques sur details.url pour r�cup�rer le domaine et ensuite voir s'il est pr�sent dans ta blacklist.

  17. #17
    Membre Expert
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    1 132
    D�tails du profil
    Informations personnelles :
    �ge : 53
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 132
    Par d�faut
    Bonjour,

    Ton sujet me fais penser � ce que fait un fichier PROXY (.pac)

  18. #18
    Membre confirm�
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    96
    D�tails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2007
    Messages : 96
    Par d�faut
    avec tout ca je n'ai pa d'aide
    il faut savoir que je bosse sur ce logiciel depuis + d'un an, j'ai durant ce temps constitu� une base de don�es de plus de 2millions d'urls, porno,pedo,snuff,scams,hacks,pay per view, viagra & drugs, astro, etc etc etc la liste est longue de ce que mon extension bloque.
    tout ce qui est inutilise, arnaque, etc ets list� dans mon extension, ce qui fait qu'au final l'utilisateur ne risque pas de tomber sur des sites indesirables, et cest bien mieux qun quelquonque logiciel avec mot clefs, car souvent ca fout le bordel.

    donc si on peu me guider dans l'application du code dans cette derniere etape c'est nikel

  19. #19
    Membre Expert
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    1 132
    D�tails du profil
    Informations personnelles :
    �ge : 53
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 132
    Par d�faut
    Citation Envoy� par imothep85 Voir le message
    donc si on peu me guider dans l'application du code dans cette derniere etape c'est nikel
    As-tu regard� � quoi correspond un fichier PAC et si cela ne pourrais pas r�pondre � ton besoin ?

  20. #20
    Membre confirm�
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    96
    D�tails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2007
    Messages : 96
    Par d�faut
    comme je le dis je developpe une extension chrome, il ne faut pas oublier que les extensions chromes s'updatent automatiquement, des que je fais la mise a jour sur le webstore, ce qui est super pratique l'utilisateur n'a rie na faire, je ne peux pas dire a tous les gens de faire la mise a jour de le fichier a chaque fois
    j'update ma database tous les jours, et quand je bosse bien je liste jusqua 4000 sites par jour....

    bref non pas de pak et pas de fichier host comme j'ne avais parl� au depart c'est bien sur une extension chrome que je bosse.

+ R�pondre � la discussion
Cette discussion est r�solue.
Page 1 sur 2 12 Derni�reDerni�re

Discussions similaires

  1. Parse Json javascript
    Par Makinator dans le forum G�n�ral JavaScript
    R�ponses: 35
    Dernier message: 12/11/2013, 08h38
  2. [POO] json et objet javascript
    Par kimcharlene dans le forum G�n�ral JavaScript
    R�ponses: 1
    Dernier message: 17/05/2008, 23h10
  3. [Prototype] Lire du JSON en javascript
    Par sliderman dans le forum Biblioth�ques & Frameworks
    R�ponses: 9
    Dernier message: 18/02/2008, 10h44
  4. [POO] Restaurer un objet JSon en javascript
    Par GandalfZeGrey dans le forum G�n�ral JavaScript
    R�ponses: 0
    Dernier message: 21/01/2008, 15h14
  5. [AJAX] R�cup�ration d'un fichier JSON avec javaScript
    Par guerin dans le forum G�n�ral JavaScript
    R�ponses: 1
    Dernier message: 26/11/2006, 19h05

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