Ich bin ziemlich neu in der Web-Entwicklung und vor kurzem endlich gelungen, ein einfaches Online-Spiel mit Javascript zu codieren. Die ursprüngliche Methode, die ich verwendet habe, um das Highscore-System zu verwalten, bestand darin, eine Reihe von JavaScript-Vars in ein HTML-Formular zu übergeben, bevor man sie an ein PHP-Skript übermittelte (zB javascript> HTML (form)> PHP> DB):Javascript Spiel Hack Prävention
Javascript:
var score = 345345; //score after playing game
document.theform.score.value = score;
document.theform.submit();
HTML:
<form name="theform" action="scorehandler.php" method="post">
<input name="score" type="hidden" value="">
</form>
diese Methode jedoch verwenden ermöglicht es dem Benutzer leicht zu hacken, indem die Form neu zu erstellen und einreichen auf eigene Faust.
ich, dass die übliche Vorgehensweise, damit die Benutzer Hacking ist wahrscheinlich so viel von der Codierung auf der Serverseite wie möglich zu tun (dh Verwendung php so viel von dem Code wie möglich zu ersetzen), aber es scheint, als könnte es einige mögliche Probleme für ein Spiel vor allem (z. B. php synchrone Natur)
Gibt es eine Möglichkeit, irgendwie die HTML-Formular (und relevante Javascript VARs) von der Client-Seite zu verbergen, ohne alles in PHP zu rekodieren ? Oder gibt es andere Standardumgehungen?
Jede Hilfe wird sehr geschätzt!
Javascript/HTML müssen über den Browser gerendert werden und zugänglich zu sehen, so es gibt keine Methoden, diese zu sichern. Man könnte Sicherheit durch Verschleierung anstreben, aber das funktioniert im Allgemeinen nicht so gut. –
Es gibt keine Möglichkeiten, HTML und JS zu sichern, da es auf der Client-Seite gerendert wird. Um jedoch die Übermittlung schädlicher Formulare zu verhindern, können Sie das CSRF-Token verwenden und es gibt viele andere Möglichkeiten, böswillige Eingaben zu verhindern. –
Verwandte liest: http://stackoverflow.com/questions/3531968/why-is-client-side-validation-a-security-risk-as-opposed-to-server-side-validati http://StackOverflow.com/questions/13942498/sollte-Sie-validieren-Server-Seite-wenn-Ihre-Validierung-Client-Seite - Vor allem die zweite. "Traue niemals etwas, das vom Browser kommt." Der Benutzer hat die vollständige Kontrolle über seinen Browser. Sie können alles vortäuschen. – Sumurai8