[FCS] Sécuriser une application

Compatible ActionScript 2. Cliquer pour en savoir plus sur les compatibilités.Par Drakini, le 17 février 2005

Article issu du forum, écrit par Drakini le 17 fev 2005

Nous allons voir ici une des possibilités de sécuriser une appli FCS, grâce au referrer du client connecté.

Si un jour, un petit malin arrive à récupérer votre adresse rtmp de votre nouveau serveur FCS Pro, payé bien cher… Qu’arrive t’il ? Il crée sur son site sa petite application FCS. Ca tombe bien, il n’a besoin que de maximum 4 ou 5 connexions simultanées et de très peu de bande passante… Enfin, il peut, si il est malveillant, faire souffrir considérablement votre bande passante. Comment éviter cela ?

Merci à Stefan Richter http://www.flashcomguru.com/ pour cette astuce que je vous explique ici, et en français…

A chaque fois qu’un client ce connecte à notre application, il fait appelle à sa méthode onConnect. Nous utiliserons cette méthode pour authentifier la source de connexion du client et donc voir si on l’autorise ou non.

Examinons le script à mettre côté serveur, dans votre main.asc.

Côté serveur :

 
application.onAppStart = function (info){
 
	this.domainList = new Array("http://www.orb-multimedia.com","http://orb-multimedia.com");
 
	this.domainLength = this.domainList.length;
 
};
 
application.onConnect = function(clientObj) {
 
	var theReferrer = clientObj.referrer;
 
 
 
	for(i=0; i<this.domainLength; i++) {
 
  var challenge = theReferrer.indexOf(this.domainList[i]);
 
  if (challenge == 0) {
 
  	acceptit = 1;
 
  	break;
 
  } 
 
	}
 
	if (acceptit) {
 
  trace ("Domaine correct");
 
  application.acceptConnection(clientObj)
 
	} else {
 
  trace ("Domaine non valide, connexion refusee"); 
 
  application.rejectConnection(clientObj)
 
	}
 
}

Au lancement de l’application, dans la méthode onAppStart, nous initialisons notre objet tableau qui servira à stocker la liste des domaines autorisés pour la connexion. Evidément, la connexion ne peut venir que de votre domaine. Le système de liste est intéressant pour les domaines autorisés sans le www. En cas de variation de raccordement autorisé.

La méthode onConnect est ensuite appelée. Cette méthode, je vous le rappelle contient toujours en premier paramètre l’objet client. Il sert à affecter le client à l’application.

Nous créons ensuite une variable theReferer qui va servir à stocker le referrer de l’objet client en cours de connexion.

La propriété referrer de l’objet client sert à récupérer une chaîne de caractère contenant l’url du serveur sur lequel ce trouve le fichier swf qui a fait l’appel au serveur FCS. Ensuite, grâce à une boucle et la méthode indexOf de l’objet String, nous allons vérifier que le referrer en cours correspond bien à l’un contenu dans le tableau, donc autorisé.

La variable challenge doit donc être égale à la position 0 de la liste pour accepter la connexion.

 
Le contenu de cet article est la propriété de son auteur : Drakini .
Toute distribution ou adaptation est interdite sans l'autorisation expresse de l'auteur. Si besoin, vous pouvez essayer de contacter Drakini par l'intermédiaire du forum.
Contact Ressources Mediabox

Ces pages de ressources collaboratives Mediabox sont mises en ligne en utilisant Dokuwiki