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:
[JAVASCRIPT]
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);
};
[/JAVASCRIPT]

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.
[JAVASCRIPT]
if ((client.referrer == VALID_REFERRER && client.pageUrl == VALID_PAGEURL))
{
trace(“acesso permitido”);
application.acceptConnection(client);
}
else
{
trace(“acesso indevido”);
application.rejectConnection(client)
}
[/JAVASCRIPT]

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 😛
Referências
http://www.leonardofranca.com.br/index.php/2008/05/19/protegendo-seu-conteudo-de-video-com-flash-media-server/

Se você esta procurando algum livro sobre Flex e Flash Media Server, recomendo Flex 3 + Flash Media Server 3.5 do meu amigo Carlos Eduardo 😀

2 thoughts on “Proteção simples de conteudo com Flash Media Server

Leave a Reply