Précédent   Forum des professionnels en informatique > Webmasters - Développement Web > JavaScript
JavaScript Forum programmation JavaScript. Lire : Cours JavaScript, FAQ JavaScript, Toutes les FAQ JavaScript et Sources JavaScript
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 10/09/2011, 11h35   #1
Membre régulier
 
Inscription : juillet 2004
Messages : 92
Détails du profil
Informations forums :
Inscription : juillet 2004
Messages : 92
Points : 75
Points : 75
Par défaut javascript & security

Bonjour à tous je cherche une piste pour un site d'affilié concernant le controle de l'utilisation d'un de nos modules js.
Empêcher l'utilisation n fois de notre script dans la même page.
Merci d'avance.
Utilisation
Code :
1
2
 
<script type="text/javascript"></script>
headmax est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/09/2011, 12h07   #2
Modérateur
 
Avatar de NoSmoking
 
Homme
Inscription : janvier 2011
Messages : 2 944
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Isère (Rhône Alpes)

Informations forums :
Inscription : janvier 2011
Messages : 2 944
Points : 4 776
Points : 4 776
Bonjour,
Citation:
Empêcher l'utilisation n fois de notre script dans la même page.
je ne comprend pas trop le sens de la question...mais
initialise une variable dans ton script qui te permettra de tester si c'est un autre appel

Ceci dit seul le dernier chargement est pris en compte lors de plusieurs insertions du même fichier, "écrasement" des nommages des fonctions.
NoSmoking est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/09/2011, 12h12   #3
Membre Expert
 
Avatar de kdmbella
 
Homme Demazy Mbella
Développeur Web
Inscription : août 2010
Messages : 620
Détails du profil
Informations personnelles :
Nom : Homme Demazy Mbella
Localisation : Cameroun

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Produits et services télécom et Internet

Informations forums :
Inscription : août 2010
Messages : 620
Points : 1 470
Points : 1 470
si tu peut nous donner des exemples on a du mal a comprendre ton problème
__________________
Trois personnes peuvent garder un secret si deux d'entre elles sont mortes. :Benjamin Franklin
L'humanité se divise en trois catégories : ceux qui ne peuvent pas bouger, ceux qui peuvent bouger, et ceux qui bougent : Benjamin Franklin
Le hasard, c'est le déguisement que prend Dieu pour voyager incognito: Albert Einstein
bon je m'arrête là au risque de me faire buter
kdmbella est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/09/2011, 12h26   #4
Membre régulier
 
Inscription : juillet 2004
Messages : 92
Détails du profil
Informations forums :
Inscription : juillet 2004
Messages : 92
Points : 75
Points : 75
bonjour et merci pour vos réponses, pour l'instant je n'ai pas d'exemple concrète je suis toujours dans la manière de m'y prendre.
Il s'agit d'un script qui charge des animations de nos serveurs.
L'utilisateur lambda utilise notre script directement accessible sur le backoffice.
Code :
1
2
 
<script type="text/javascript" src="url_vers_nos_domaines"></script>
afin de contrôler l'utilisation j'avais pensé à a truc du genre

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
 
<html>
<head>
<script type="text/javascript">
function bill(){
	return "funkyclaqued";
}
</script>
<script type="text/javascript">
if(typeof(bill) == "undefined"){
	function bill(){
		return "funkyclaque";
	}
}
alert(bill());
</script>
mais la j'avoue que c'est pas top comme début et un peu flippant au vue du nombre de méthode de l'application en question...
Un array de tout les fonctions une boucle avec typeof, mais au niveau fiabilité je sèche...
Merci de vos lumières.
headmax est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/09/2011, 13h39   #5
Membre régulier
 
Inscription : juillet 2004
Messages : 92
Détails du profil
Informations forums :
Inscription : juillet 2004
Messages : 92
Points : 75
Points : 75
Par défaut un petit autre pas

Code :
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
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
 
<html>
<head>
<!-- UTILISATEUR LAMBDA -->
<script type="text/javascript">
function bill(){
	 alert("billclaqued");
}
function boule(){
	alert("bouleclaqued");
}
function le_mechand(){
	alert("mechandclaqued");
}
</script>
<script type="text/javascript">
//Var personnages array des functions à parametrer
var personnages = new Array('bill','boule','le_mechand');
 
//functions de controles & initialisations
function FuncExist(funcName){
	alert("CHECK function "+funcName);
	if(typeof(funcName) == "undefined"){
		init_function(funcName);
	}
}
function init_function(functionName){
	alert("INIT function "+functionName);
  functionName(); //initialisation
}
 
for(var i=0;personnages.length>i;i++){
	FuncExist(personnages[i]);
}
 
//scripts de nos serveurs
function bill(){
        alert("billclick");
}
function boule(){
	alert("bouleclick");
}
function le_mechand(){
	alert("mechandclick");
}
</script>
headmax est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/09/2011, 13h55   #6
Membre régulier
 
Inscription : juillet 2004
Messages : 92
Détails du profil
Informations forums :
Inscription : juillet 2004
Messages : 92
Points : 75
Points : 75
Par défaut petit oubli

Code :
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
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
 
<head>
<!-- UTILISATEUR LAMBDA -->
<script type="text/javascript">
function bill(){
	 alert("billclaqued");
}
function boule(){
	alert("bouleclaqued");
}
function le_mechand(){
	alert("mechandclaqued");
}
</script>
<script type="text/javascript">
//Var personnages array des functions à parametrer
var personnages = new Array('bill','boule','le_mechand');
 
//functions de controles & initialisations
function FuncExist(funcName){
	alert("CHECK function "+funcName);
	if(typeof(funcName) == "undefined"){
		init_function(funcName);
	}else{
		delete(FuncName);
	}
}
function init_function(functionName){
	alert("INIT function "+functionName);
  functionName(); //initialisation
}
 
for(var i=0;personnages.length>i;i++){
	FuncExist(personnages[i]);
}
//scripts de nos serveurs
function bill(){
	 alert("billclick");
}
function boule(){
	alert("bouleclick");
}
function le_mechand(){
	alert("mechandclick");
}
</script>
Ici j'obtiens ce que je souhaite mes fonctions s’exécutent et pas celle de la première balise. Mais toujours pas convaincu... sur la fiabilité.
headmax est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/09/2011, 14h48   #7
Modérateur
 
Avatar de NoSmoking
 
Homme
Inscription : janvier 2011
Messages : 2 944
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Isère (Rhône Alpes)

Informations forums :
Inscription : janvier 2011
Messages : 2 944
Points : 4 776
Points : 4 776
Citation:
Ceci dit seul le dernier chargement est pris en compte lors de plusieurs insertions du même fichier, "écrasement" des nommages des fonctions.
c'est bien la dernière affectation qui est pris en compte, la lecture du code se faisant de façon séquentielle.
Code :
1
2
3
4
5
6
7
8
function fctTest(){
  alert('1st declaration');
}
// ecrasement de la premiere definition
function fctTest(){
  alert('2nd declaration');
}
fctTest(); // Affiche -> 2nd declaration
les tests que tu effectues ne sont pas nécessaire sauf si tu veux préserver celle de l'utilisateur "lamda", mais c'est une autre histoire...

La meilleur solution reste dans ce cas les Espaces de noms (ou namespace) en JavaScript, bonne lecture...
NoSmoking est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/09/2011, 15h03   #8
Membre régulier
 
Inscription : juillet 2004
Messages : 92
Détails du profil
Informations forums :
Inscription : juillet 2004
Messages : 92
Points : 75
Points : 75
Merci pour cette info je jette un coup d'oeil sur ton lien.
Encore merci
headmax est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 01h33.


 
 
 
 
Partenaires

Hébergement Web