Peut javascript simuler un clic sur un bouton?
Je suis en train de concevoir un site où il serait problématique si les macros ont été autorisés à marcher librement.
J'ai pensé à un moyen d'arrêter une macro faite en simulant les requêtes HTTP à partir d'un clic sur un bouton, mais ce serait en vain s'ils pouvaient insérer des scripts javascript, qui vient de "cliquer" sur le bouton et continuer en tant qu'utilisateur normal serait.
Par la simulation d'un clic sur un bouton, je veux dire, le bouton est pressé et le Formulaire, le bouton est dans les courses avec le code php associé.
Logique me dit javascript peut le faire, mais je voudrais savoir pour sûr, je vous remercie pour toute entrée!
~Andrew
- Que voulez-vous dire avec macro, entendez-vous injecter du code javascript dans les formulaires? Ou est ceci ce que tu veux dire
- Oui si quelqu'un a ajouté leurs propres javascript sur mon site, qui peut simuler un bouton sur mon site d'être pressé. Je voudrais savoir si ils peuvent (capables) de le faire.
- Ils seront toujours en mesure d'insérer du javascript pour faire n'importe quoi avec votre page, y compris l'envoi de requêtes http. Il n'y a aucun moyen que vous pouvez l'éviter.
- Vous pouvez ajouter certaines variables dans les requêtes HTTP du serveur-côté qui peut faire la bonne requête http difficile/impossible d'envoyer. Mais vous dites: ils peuvent aussi facilement cliquer sur un bouton sur mon site à l'aide de javascript?
- Il est parfaitement possible de script, un navigateur internet complet, l'émulation de chaque action d'un utilisateur légitime pourrait prendre. En effet, cela se fait couramment pour le navigateur de test et les outils d'accessibilité. Si, finalement, vous ne pouvez pas arrêter automatisé des demandes. Vous pouvez les ralentir en utilisant des outils comme la limitation de vitesse et de CAPTCHA.
Vous devez vous connecter pour publier un commentaire.
Un bouton peut être toujours cliqué par programmation. Par exemple vous pouvez avoir de la page avec le formulaire comme ceci:
que c'est possible, juste pour ouvrir debug cosole et le type
qui vont cliquer sur le bouton, ou
qui vont cliquer sur le bouton de soumission du formulaire, ou tout simplement
de soumettre le formulaire, sans cliquer sur le bouton.
Il n'existe aucun moyen pour empêcher l'utilisateur de la maîtrise de code JavaScript sur le client. Vous devez ajouter quelques validation côté serveur afin d'éviter les actions de l'utilisateur.
document.getElementsByTagName('input')[1].click();
àdocument.getElementsByTagName('input')[0].click();
la seule chose que vous pouvez faire est de valider la requête sur le serveur.
une fois que vous avez la main de la page à un client, vous n'avez aucune technique de contrôle sur la façon dont il pourrait être utilisé.
Ce que vous pouvez faire par exemple, à partir de:
Dire que vous êtes prise de javascript jeu. Vous utiliser AJAX pour envoyer le score du joueur
le serveur de journalisation. Après avoir regardé le script, un utilisateur malveillant pourrait exécuter votre code AJAX
pour envoyer un score de 1 000 000 d', même si ils ont gagné seulement 5 000.
Vous ne pouvez pas empêcher que cela se passe sur le javascript côté. Cependant, il doit d'une certaine façon pour authentifier les requêtes AJAX sur le côté serveur, vous pourriez être en mesure de passer une sécurité "jeton" de javascript qu'un pirate ne pouvait pas mettre la main.