Proteção simples de conteudo com Flash Media Server
Fui chamado para resolver um problema em relação a proteção do conteudo de um cliente, o problema consistia em que alguem mal-intencionado estava roubando seus streams ao vivo.
A pessoa simplesmente pegou o codigo html do site e colou no site dela, conseguindo assim transmitir o conteudo em seu blog. O player em questão não foi desenvolvido por mim, portanto nem me dei ao trabalho de olhar o fonte, resolvi ir diretamente para o Flash Media Server.
Baseado na documentação da Adobe, resolvi de uma maneira bem simples, o código do main.asc é o seguinte:
-
trace("init application...");
-
-
var VALID_REFERRER = "http://www.mydomain.com.br/mySwf.swf";
-
var VALID_PAGEURL = "http://www.mydomain.com.br/myPage.html";
-
-
application.onAppStart = function ()
-
{
-
trace("init app...");
-
trace("onAppStart> " + application.name + " is starting at " + new Date());
-
};
-
-
application.onStatus = function (info)
-
{
-
trace("onStatus> info.level: " + info.level + ", info.code: " + info.code);
-
trace("onStatus> info.description: " + info.description);
-
trace("onStatus> info.details: " + info.details);
-
};
-
-
application.onConnect = function (client)
-
{
-
if ((client.referrer == VALID_REFERRER && client.pageUrl == VALID_PAGEURL))
-
{
-
trace("acesso permitido");
-
application.acceptConnection(client);
-
}
-
else
-
{
-
trace("acesso indevido");
-
application.rejectConnection(client)
-
}
-
trace("onConnect> client.ip: " + client.ip);
-
trace("onConnect> client.pageUrl: " + client.pageUrl);
-
trace("onConnect> client.agent: " + client.agent);
-
trace("onConnect> client.referrer: " + client.referrer);
-
trace("onConnect> client.protocol: " + client.protocol);
-
};
-
-
application.onDisconnect = function (client)
-
{
-
trace("onDisconnect> client.name: " + client.name)
-
trace("onDisconnect> disconnecting at: " + new Date());
-
};
-
-
application.onAppStop = function (info)
-
{
-
trace("onAppStop> application.name: " + application.name);
-
trace("onAppStop> stopping at " + new Date());
-
trace("onAppStop> info.level: " + info.level);
-
trace("onAppStop> info.code: " + info.code);
-
trace("onAppStop> info.description: " + info.description);
-
};
A API do Flash Media Server é muito poderosa e contém muitos recursos interessantes, um deles é a possibilidade de saber de onde exatamente está vindo a conexão do swf. Neste trecho já resolvia o problema com as constantes declaradas no inicio do arquivo.
-
if ((client.referrer == VALID_REFERRER && client.pageUrl == VALID_PAGEURL))
-
{
-
trace("acesso permitido");
-
application.acceptConnection(client);
-
}
-
else
-
{
-
trace("acesso indevido");
-
application.rejectConnection(client)
-
}
Resumindo, so será feita a conexão com o Flash Media Server se a tentativa de conectar vier de um SWF e HTML definidos por mim.
Uma solução bem simples mas que resolveu o problema ![]()
Como ultimo recurso, o ladrão ainda copiou o swf do cliente e colocou em seu blog ![]()
2 Comments
Other Links to this Post
RSS feed for comments on this post. TrackBack URI



By Rodolfo Pereira, March 15, 2010 @ 00:51
Otimo Post…
Muito explicativo…
By MY NEW TIPS, March 21, 2010 @ 12:04
sim muito bom o post obrigado…