Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2848 connectés 

  FORUM HardWare.fr
  Programmation
  HTML/CSS

  Mon petit bout de code est-il vulnérable aux injections ?

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Mon petit bout de code est-il vulnérable aux injections ?

n°2177032
Oyeee
Posté le 22-02-2013 à 11:45:09  profilanswer
 

Bonjour, j'ai un gros doute sur mon code javascript, est-ce que vous pourriez me dire s'il est vulnérable à des des injections, attaques, etc... ?
 

Code :
  1. // fonction basique ajax
  2. function ouvre(url){
  3.      var xhr = getXhr();
  4.      xhr.open("GET", url, false);
  5.      xhr.send(null);
  6.      if(xhr.readyState == 4) {
  7.  if(xhr.status == 200) {
  8.  return(xhr.responseText);
  9.  }
  10. } else { return(false); }
  11. }
  12. // ma fonction
  13. function ouvrir_onglet(numero_onglet,nom_fichier,couleur){
  14.      var contenu_onglet = document.getElementById("contenu_onglet" );
  15.      if(couleur != ''){ couleur = '?'+couleur; }
  16.      contenu_onglet.innerHTML = ouvre("dossier/"+nom_fichier+".php"+couleur) // risque d'injection ou détournement ???
  17. }


 
L'appel se fait sur ce type :  
 

Code :
  1. <a href="javascript:ouvrir_onglet('1','ma_rubrique','rouge')">onglet 1</a>


 
Merci d'avance !
 
 :bounce:


Message édité par Oyeee le 22-02-2013 à 11:51:09
mood
Publicité
Posté le 22-02-2013 à 11:45:09  profilanswer
 

n°2177048
x1fr
Posté le 22-02-2013 à 12:08:43  profilanswer
 

Ben potentiellement, n'importe qui peut afficher la console javascript et lancer par exemple :
 

Code :
  1. ouvrir_onglet('1','../mondossier/mapage','rouge&param2=cequejeveux');


 
En gros, on appelle n'importe quelle page avec les paramètres que l'on veut, mais ça on peut déjà le faire en saisissant directement l'adresse dans le navigateur, donc il faut blinder toutes tes pages :p


---------------
Origin / PSN / Steam / Uplay : x1fr - bnet : Fab#2717
n°2177084
Oyeee
Posté le 22-02-2013 à 14:50:42  profilanswer
 

Merci mais heu... j'ai pas compris ce que tu me conseilles de faire  :??:  :p

n°2177087
x1fr
Posté le 22-02-2013 à 15:20:21  profilanswer
 

Ben en gros ton script permet juste d'afficher le contenu d'une URL dans la page en cours, à priori pas de gros risque.
 
C'est sur les pages appelées qu'il faut faire attention aux risques de sécurité.
 
Notamment ne pas partir du principe que ta page ma_rubrique.php va recevoir le querystring rouge, parce que n'importe qui va pouvoir modifier ça.
 
Mais tout ça n'est pas spécifique à ton script ajax puisqu'on peut avoir le même résultat en tapant directement l'adresse dans le navigateur


---------------
Origin / PSN / Steam / Uplay : x1fr - bnet : Fab#2717
n°2177089
Oyeee
Posté le 22-02-2013 à 15:23:56  profilanswer
 

Merci pour la réponse. Donc en gros tout va bien mais c'est au niveau du fichier php qu'il faut que je fasse des vérifications...
 
...genre s'il y a des caractères interdits, etc... ?
 
 :heink:


Message édité par Oyeee le 22-02-2013 à 15:32:37
n°2177097
rufo
Pas me confondre avec Lycos!
Posté le 22-02-2013 à 15:40:01  profilanswer
 

Faudrait plutôt nous monter le code du fichier php appelé :/
 
Le JS, c'est plutôt aux failles XSS que c'est sensible...


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
n°2177098
Oyeee
Posté le 22-02-2013 à 15:45:07  profilanswer
 

Je crois que ça en dit long :
 
http://websec.wordpress.com/2010/0 [...] -overview/
 
NOn ?  :(
 
NB : @rufo -> en fait ça oui mais déjà je voulais savoir si je gardais ce principe dans mon javascript


Message édité par Oyeee le 22-02-2013 à 15:46:31
n°2177103
Oyeee
Posté le 22-02-2013 à 15:55:39  profilanswer
 

Pour du php astuce de la liste blanche:  
 

Code :
  1. $whitelist = array('home', 'page');
  2.   if (in_array($_GET['page'], $whitelist)) {
  3.         include($_GET['page'].'.php');
  4.   } else {
  5.         include('home.php');
  6.   }


 
Peut-être faire pareil en JS ?

n°2177105
x1fr
Posté le 22-02-2013 à 16:04:00  profilanswer
 

Non parce que de toute façon il ne faut pas faire confiance aux données que tu reçois venant du JS.
 
Reprend mon premier exemple, tu ouvres une console javascript et tu appelles la fonction ouvrir_onglet avec les paramètres que tu veux.
 
La vérification doit avoir lieu dans le php, et ton exemple de liste blanche est déjà un bon gardefou : tu sais si le paramètre fait partie d'une liste que tu maîtrises, et s'il ce n'est pas le cas -> dehors.
 
 
Le javascript n'est pas dangereux en soit, du moment que c'est toi qui le défini. Si un utilisateur bidouille ton javascript, ça n'affectera que son poste.
 
Ce qui est dangereux (le fameux xss), c'est si quelqu'un arrive à insérer ce code javascript malveillant sur ton site, et affectera donc tout le monde. Mais pour y arriver, il faut passer par une faille dans le php, pas dans ton bout de code ajax.


Message édité par x1fr le 22-02-2013 à 16:04:53

---------------
Origin / PSN / Steam / Uplay : x1fr - bnet : Fab#2717
n°2177106
Oyeee
Posté le 22-02-2013 à 16:06:20  profilanswer
 

OK, merci !
 
 :hello:


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  HTML/CSS

  Mon petit bout de code est-il vulnérable aux injections ?

 

Sujets relatifs
aide codecode mppt
[JAVASCRIPT] Que fait ce code ?Changer code php via un bouton (changer affichage Mosaique ou liste)
petit pb de synthaxe pr mon code (colorer une cellule!)Problème avec mon code.... HELP
code pour popup[RESOLU] Modification d'un code javascript
Automatisation de "remplacement" String texte - codeOptimisation du code
Plus de sujets relatifs à : Mon petit bout de code est-il vulnérable aux injections ?


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR