Como evitar a alteração de um valor variável em Javascript [duplicado]
Duplicata Possível:
Existem constantes em Javascript?
Existe uma maneira de declarar uma estática do valor final em javascript para que ela não possa ser alterada por um terceiro?
O que eu tenho é um aplicativo de compartilhamento de artigos, com usuários gratuitos sendo suportados por anúncios. O que eu desejo fazer é impedir que os usuários livres alterem o conteúdo innerHTML alterando a variável de armazenamento para o conteúdo.
O que eu tenho neste momento é um timer que recarrega o innerHTML do artigo no site do usuário a cada 5 segundos e estou armazenando o valor para o recarregamento em uma variável.
No entanto, se um gênio usando jsbeatify explora qual variável detém a chave para remover o anúncio e altera isso, perdemos a receita e a exposição de nossos produtos.
Como evitar a alteração da variável interna?
ATUALIZAREste é o resultado final do que eu criei:
<div id="specialdiv"></div>
<input type="button" value="try to change the function i to do something different" onclick="t.i = function(){alert(data.secret);}"><BR>
<input type="button" value="set function to null out of spite" onclick="t=null;">
<script type="text/javascript">
e = function(){var data = { };
Object.defineProperty(data, 'secret', {
value: "Hello world!",
writable : false,
enumerable : true,
configurable : false
});this.z=function(){window.setTimeout("try{document.getElementById('specialdiv').innerHTML = '"+data.secret+"';t.i.z();}catch(err) {document.body.innerHTML=err;}",5000);}}
g = function(){};
g.prototype = new e();e=null;window.t = {}
Object.defineProperty(window.t, 'i', {
value: new g(),
writable : false,
enumerable : false,
configurable : false });g = null;
window.t = Object.freeze(window.t); t = Object.seal(window.t);
t.i.z();
</script>
Isso será apresentado em formato compactado, apenas para dificultar a cópia do código da fonte. Dessa forma, o esforço para simplesmente copiar e colar o código será maximizado e será muito difícil de automatizar.
Obrigado a todos por suas respostas.