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 fonction decode echapper " [ {


Sujet :

JavaScript

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2011
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2011
    Messages : 25
    Points : 20
    Points
    20
    Par défaut JSON fonction decode echapper " [ {
    Bonjour,

    Voila, j'ai créé un fonction json_decode(jsonstring) dans le langage de progra créé par ma boite(proche du java). Et je galere un peu pour échapper les éléments suivants : " , : [ { ] } qui serait dans une valeur.

    Par ex le json suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    {"curl":"https://graph.facebook.com/fql?q={"all+friends":"SELECT+uid2+FROM+friend+WHERE+uid1=me()+LIMIT+10","my+name":"SELECT+name+FROM+user+WHERE+uid=me()"}&access_token=AAAEIbuxSbCcBAFr1x9mm001GAGECQR5z5OJejjN2exQUwQG79l4ZAgl2jFnQd29lCiqPgJRJyXhG5TpuPN9p5NfPt2vGAVrfBYyeln"}
    (l'url ne fonctionnera pas au cas ou..)
    Donc on peux voir ici dans le champs "value", il faudrai échapper les éléments : ", { } :

    Une idée ?

  2. #2
    Expert confirmé
    Avatar de RomainVALERI
    Homme Profil pro
    POOête
    Inscrit en
    Avril 2008
    Messages
    2 652
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : POOête

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 652
    Points : 4 164
    Points
    4 164
    Par défaut
    1) Quel champ value ?

    2) Ou se déroule l'échappement dont tu parles ? en JS ou dans ton langage pseudo-java ?

  3. #3
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 220
    Points
    91 220
    Billets dans le blog
    20
    Par défaut
    A priori, ce sont juste les mauvaises imbrication de quote qui posent problème...

    Mais sinon, tu envoies vraiment une requête SQL via JavaScript ?

  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 640
    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 640
    Points : 66 669
    Points
    66 669
    Billets dans le blog
    1
    Par défaut
    C'est exactement ce que je me suis dit à la lecture du code !!!
    Voir des requetes en clair dans du js ... c'est juste ... suicidaire ?

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2011
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2011
    Messages : 25
    Points : 20
    Points
    20
    Par défaut
    ben non. En gros, j'ai repris le SDK de facebook(qui permet de faire des requêtes vers facebook) et j'ai créé un fonction qui va gerer les multi query. elle crée l'url avec les query placé en parametre. donc une url de type :


    https://graph.facebook.com/fql?q={"all+friends":"SELECT+uid2+FROM+friend+WHERE+uid1=me()+LIMIT+10","my+name":"SELECT+name+FROM+user+WHERE+uid=me()"}&access_token=AAAEIbuxSbCcBAFr1x9mm001GAGECQR5z5OJejjN2exQUwQG79l4ZAgl2jFnQd29lCiqPgJRJyXhG5TpuPN9p5NfPt2vGAVrfBYyeln

    Ensuite, je balance le lien vers une autre méthode qui s'occupe de lancer le stream vers facebook, et facebook me renvoie la réponse sous le format JSON.

    Pour des raisons administratif/codage/pratique, j'ai décider de rajouter au bout du JSON que je récupère l'url qui a servi a obtenir cette réponse.

    et donc, c'est ce qui fait que dans mon JSON, je vais avoir l'url qui possède des { , : }

    Et le champs value, c'est l'url.(le champs key serait "curl"(ce qui est logique non ?

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2011
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2011
    Messages : 25
    Points : 20
    Points
    20
    Par défaut
    et il n'y a pas de mauvais imbrication de quote, c'est juste qu'il ya des quotes qui se retrouve dans les key/valeurs et qui sont interpreté par mon code comme si c'était des séparateur...

  7. #7
    Membre expérimenté Avatar de Willpower
    Homme Profil pro
    sans emploi
    Inscrit en
    Décembre 2010
    Messages
    1 009
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : sans emploi

    Informations forums :
    Inscription : Décembre 2010
    Messages : 1 009
    Points : 1 519
    Points
    1 519
    Par défaut
    ma réponse va p-ê sembler stupide mais ... et l'antislash ?

  8. #8
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2011
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2011
    Messages : 25
    Points : 20
    Points
    20
    Par défaut
    C'est bon, avant de coller l'URL dans mon JSON, je le passe dans une fonction escape() qui remplace les éléments bizarre par des %25 ....

  9. #9
    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 640
    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 640
    Points : 66 669
    Points
    66 669
    Billets dans le blog
    1
    Par défaut
    ben non. En gros, j'ai repris le SDK de facebook(qui permet de faire des requêtes vers facebook)
    Ha oui donc si facebook est codé comme une passoire c'est une raison valable d'en faire autant

  10. #10
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2011
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2011
    Messages : 25
    Points : 20
    Points
    20
    Par défaut
    ouè mais cette json n'est pas transférée en public. elle reste dans le serveur

  11. #11
    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 640
    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 640
    Points : 66 669
    Points
    66 669
    Billets dans le blog
    1
    Par défaut
    ça reste une porte d'injection de mysql ...
    Que se passe-t-il si je choppe l'adresse de la page et que je lance une requete delete ou dump ?

  12. #12
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 559
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 559
    Points : 21 619
    Points
    21 619
    Par défaut
    C'est pas du SQL, c'est du FQL, le langage d'interrogation de l'API Facebook -_-°.
    J'ignore s'il y a un risque d'injection FQL (j'en doute,) mais s'il y en a un, il est pour la BDD Facebook et c'est Facebook qui l'impose.

    Et j'ajoute que cette requête est très certainement transmise au public, ce qui ne pose aucun problème vu qu'aucune donnée sensible ne s'y trouve (et que la réponse ne contient que des choses que les gens qui peuvent la regarder ont le droit de voir.)

    Concentrons-nous plutôt sur le vrai problème (je dois avouer que moi, j'ai toujours pas compris la question.)

Discussions similaires

  1. JSON fonction decode echapper " [ {
    Par iamslyper dans le forum XML/XSL et SOAP
    Réponses: 1
    Dernier message: 28/12/2011, 03h20
  2. [sql2005] cmdsql fonction DECODE
    Par delanfranchi dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 12/06/2006, 12h38
  3. Problème fonction decode()
    Par chti_juanito dans le forum Administration
    Réponses: 11
    Dernier message: 15/02/2006, 20h00
  4. Fonction decode
    Par nad dans le forum Oracle
    Réponses: 7
    Dernier message: 30/12/2005, 15h39

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