it-swarm.com.de

Kann Javascript einen Klick auf eine Schaltfläche simulieren?

Ich entwerfe eine Site, bei der es problematisch wäre, wenn Makros frei laufen könnten.

Ich habe über eine Möglichkeit nachgedacht, ein Makro zu stoppen, das durch Simulieren der HTTP-Anforderungen durch Klicken auf eine Schaltfläche erstellt wurde. Dies wäre jedoch vergeblich, wenn sie JavaScript-Skripts einfügen könnten, die nur auf die Schaltfläche klicken und wie ein normaler Benutzer vorgehen würden.

Durch die Simulation eines Knopfklicks wird der Knopf gedrückt und das Formular, in dem sich der Knopf befindet, wird mit dem dazugehörigen PHP-Code ausgeführt.

Logic sagt mir, dass Javascript dies kann, aber ich würde gerne sicher wissen, danke für jede Eingabe!

~ Andrew

27
AndrewB

Eine Schaltfläche kann immer programmgesteuert angeklickt werden. Zum Beispiel könnten Sie eine Seite mit folgendem Formular haben:

<form>
    <input type="text" />
    <button>Do something</button>
    <input type="submit">
</form>

als es ist möglich, nur Debug-Cosole zu öffnen und zu tippen

document.getElementsByTagName('button')[0].click();

welches den Knopf anklickt, oder

document.getElementsByTagName('input')[1].click();

klicken Sie auf die Schaltfläche "Senden" des Formulars, oder klicken Sie einfach auf "Senden"

document.forms[0].submit();

um das Formular abzusenden, ohne auf die Schaltfläche zu klicken.

Es gibt keine Möglichkeit, den Benutzer daran zu hindern, JavaScript-Code auf dem Client zu beherrschen. Sie müssen eine Validierung auf der Serverseite hinzufügen, um unerwünschte Benutzeraktionen zu verhindern.

48
Vadim

sie können die Anforderung nur auf dem Server validieren.

sobald Sie die Seite an einen Kunden übergeben, haben Sie keine technische Kontrolle darüber, wie sie verwendet werden kann.

Was Sie zum Beispiel tun können, von :

Angenommen, Sie machen ein Javascript-Spiel. Sie verwenden AJAX, um die Punktzahl des Players zur Protokollierung an den Server zu senden. Nachdem Sie sich das Skript angesehen haben, kann ein böswilliger Benutzer Ihren zu sendenden AJAX - Code ausführen eine Punktzahl von 1.000.000, auch wenn sie nur 5.000 verdient haben.

Sie können nicht verhindern, dass dies auf der Javascript-Seite passiert. Es sollte jedoch eine Möglichkeit geben, AJAX) - Anforderungen auf der Serverseite zu authentifizieren. Möglicherweise können Sie ein Sicherheits - "Token" an JavaScript übergeben, das ein Hacker nicht erhalten kann.

2
David Karlsson