Supponiamo di avere una funzione che chiama eval (); così:
<html>
<head>
<script>
var obj = function(){
var bar = null;
this.Setter = function(){
bar = 1
};
this.Getter = function(){
return bar;
}
}
function DoEval(str,Setter){
eval(str);
}
function Test(){
var o = new obj();
var a = alert;
DoEval(document.getElementById("Text1").value,o.Setter);
var bar = o.Getter();
if(bar == null) { a("Failed!"); return; }
a("Congratulations!");
return;
}
</script>
</head>
<body>
Code:<br>
<textarea id="Text1" cols="100" rows="25"></textarea>
<br>
<button onclick="Test();">Test</button>
</body>
</html>
Potrebbe non avere mai il controllo indietro da DoEval (), ma questa è un'altra domanda, per ora voglio sapere che la funzione può essere attendibile? (L'utente può temperare con la funzione Test () per restituire un messaggio positivo?) E se no, è possibile proteggerlo usando javascript?