Non l’injection javascript c’est seulement dans la page pour changer sa signature, en effet la double-quote n’est pas protégée. Ceci d’ailleurs constitue une faille plutôt importante, il me suffirait de connaitre la définition de la fonction qui enregistre la signature, et il serait alors probable que l’on puisse insérer directement sa signature sans alors passer par les éventuelles vérification (en suposant que le striptag soit à l’enregistrement, ce qui ne m’étonnerait pas, mais aussi en suposant qu’il soit en javascript, ce dont je doute fort…) ce qui permettrait là, d’injecter directement du html dans sa signature, et donc une possible injection de toutes les pages du forum là où réside sa propre signature. Je voulais le faire hier soir, chercher genre pour mettre un document.getElementById(‹ alpha_glossaire ›).innerHTML=‹ Vive DarKChAm ›; ça aurait pû être marrant!
Edité le 13/11/2007 à 20:20
Il serait pas un peu obfuscé le Javascript du forum?
jQuery.fn.extend({
getoffset:function(a){
var b=this[0]['offset'+a];
if(a=='Top')b+=this[0].offsetHeight;
while((this[0]=this[0].offsetParent)!=null){
b+=this[0]['offset'+a];
if(this[0].border&&this[0].border!=0)b++}
return b-document.body['scroll'+a]},highlight:function(){
$(this).animate({
opacity:'toggle'},'normal',function(){
$(this).animate({
opacity:'toggle'},'normal')})},serializeform:function(){
var a='({
';
j’ai j’amais vu cette syntaxe.
DarKChAm me dit la même hier soir… et je plussoie aussi, jamais vu cette syntaxe ![]()
Et c’est peut-être pas critique du tout, si?
Je veux dire, j’avais essayé à l’époque de simuler la requête Ajax de sauvegarde, et bon…
Oui, j’ai même parlé de « classe » à première vue, une fonction (? le terme objet n’est pas adapté) qui contient plusieurs fonctions séparées par des virgules, je ne connais que bien peu JavaScript mais j’avais jamais vu ce genre de fonction. Après je me suis dit que c’était peut-être parsé après suivant une méthode définie. Une chose étrange que j’ai remarqué aussi hier, j’ai pas réussi (bon je ne m’y suis pas atardé non plus) à trouver où était définie la fonction de sauvegarde appelé dans le .
Idem, en analysant les erreurs lors de mes tentatives d’injection, j’ai vu que la variable qui contient la signature était dans une syntaxe du type :
{(Signature:« ma_signature »)};
Je me suis dit que mon générateur d’erreur me retournait une erreur relative à la requete Ajax passée, mais je comprend pas trop, on peut créer directement une requete Ajax sans passer par XMLHttpRequest? Enfin là je m’aventure dans une zone que je ne connais pas, donc je dis surement n’importe quoi.
Javascript est un langage essentiellement objet, oui.
Certes oui, mais j’ai pas le souvenir d’avoir entendu parlé de classe JavaScript? Après je manipule peut-être mal les mots…
Je ne connais pas grand chose non plus en Javascript, mais il me semble que TheGuit (?) avait évoqué un système de classes en JS qu’il avait créées… donc ça doit se faire.
Moi ?
Des classes en javascript j’ai jamais fais.
C’est pas parce qu’un langage est objet qu’il existe forcément des classes.
Javascript fonctionne par prototypage (http://fr.wikipedia.org/wiki/Programmation_orientée_prototype#)
www.faqs.org… << des problemes sont signalés
trouvé sur osa [:shy]
Hum, d’accord, je vois déjà un peu mieux la notion. Pour en revenir en problème, peut-on expliquer?
Moi ?
Des classes en javascript j’ai jamais fais.
Alors ça devait être kisscool ?
www.faqs.org… << des problemes sont signalés
trouvé sur osa [:shy]
« Reliable Asynchronous Transfer Protocol (RATP) »
Moi qui les croyaient en grève :o !
Bon allez, j’file, bonuit (espérons que l’autoconcat va marcher :/)
Edit : « Aujourd’hui 22h 55mn 50s » à 62 secondes près
!
Edité le 13/11/2007 à 22:57
Alors ça devait être kisscool ?
évidemment, faut toujours que ça retombe sur moi :o [:eveden]
mais en effet, je me sert d’un système de classe en javascript basé sur prototype.js (l’un des core du framework ajax openrico)
'fin l’appellation objet est peut-être incorrect pour un puriste (je ne vise personne :o [:shy] ), mais là ça me permet d’avoir un ensemble de fonction avec des propriétés regroupés dans une class que j’utilise comme ça (par exemple) :
var obj = new NomObjet();
alert(obj.nom_function(variable));var obj2 = new NomObjet();
alert(obj2.nom_function(variable));
après, je ne sais pas ce que ça vaut en terme d’espace mémoire est tout ca, le fait est que :
- j’ai un objet de base
- je peux l’instancier autant de fois que je veux
- chaque objet ainsi instancié est indépendant des autres au niveau de ses propriétés
pour moi, c’est largement suffisant pour faire de l’objet en javascript :neutre: …
Edité le 14/11/2007 à 00:02
En fait, Kiss, c’est parfaitement inutile. Dans la plupart des cas, suffit de faire :
Machin = function () { /* init */ }
Machin.prototype.nomFunction = function () {}
// ou
Machin.prototype = {
nomFunction: function () {}
};
Ce qui est beau, c’est que prototype est aussi un objet, un objet de classe^^
Preumz ![]()
Tain ca promet une belle gallère, j’ai déjà vu qu’il y avait 300 bornes de blocage… ![]()
:hello:
Ah merde c’est today leur grève kiféchié…
EHLO clubic.com
:hello:
En fait, Kiss, c’est parfaitement inutile. Dans la plupart des cas, suffit de faire :
Machin = function () { /* init */ }
Machin.prototype.nomFunction = function () {}
// ouMachin.prototype = {
nomFunction: function () {}
};Ce qui est beau, c’est que prototype est aussi un objet, un objet de classe^^
d’accord, c’est la 2ème syntaxe que je connaissait pas.
Appermment, là ils ont bourré leur script de pointeurs de fonctions.
il n’y a une faille que si effectivement on peut faire quelque chose en simulant les requêtes AJAX. Il va falloir aapter les débuggeur à AJAX, là je n’ai pas pu (ou su) tracer les requêtes.
et puis, mettre un breakpoint sur un script de 40 fonctions toutes collées sur une même ligne, c’est pas facile ![]()