2017-10-08 12 views
1

Je veux ouvrir une page php et injecter un cookie à la volée car il utilise cela comme identifiant pour déclencher un appel ajax.injecter des cookies php en utilisant javascript dans window.open

Le défi est de ne pas posséder ou avoir accès à la page php.

+0

Si vous n'avez aucun accès au back-end ou un appel d'API ouvert, vous ne pouvez pas. Bien que vous pouvez définir des cookies dans window.cookies avec Javascript si c'est ce que vous voulez. – Plotisateur

+0

Ce son super suspect. Vous voulez écrire un cookie, mais vous ne pouvez pas modifier le script php o.0?! – mituw16

+0

Votre page ne peut pas créer de cookies pour un autre site –

Répondre

1

Lors de la configuration des cookies dans JS, le processus n'est pas aussi simple que l'écriture document.cookie="'name': 'value'". En fait, il y a beaucoup de scripts qui s'efforcent de simplifier ce processus de configuration des cookies côté client. Here est une réponse que j'ai trouvée qui peut vous aider à obtenir une version simple de cela sans avoir à étendre les ressources à l'appel de scripts externes.

Le formulaire pour un cookie dans JS est la suivante: <name>=<value>; expires=Mon, 16 Oct 2017 01:11:29 GMT; path=/

Notez l'inclusion de expires et path. Ils sont nécessaires lors de la déclaration d'un cookie du côté client.

Maintenant, une chose à garder à l'esprit est que si la page envoie une requête JSON à un serveur différent, cela ne fonctionnera pas. En effet, les cookies suivent un Same-Origin Policy pour rendre le vol de cookies et d'autres codes malveillants associés plus difficiles à réussir.

Pour simplifier, je veux dire que si vous allez à example.com mais le serveur sert ses ressources ajax.example.com et les biscuits sont pour ajax.example.com, vous ne serez pas en mesure de manipuler ces cookies via javascript, sauf si vous pouvez écrire HTML à une partie de le domaine ajax.example.com. La possibilité de configurer des cookies sans interférence côté serveur est généralement considérée comme un risque pour la sécurité, et certains pourraient voir la falsification des cookies par un script soumis par l'utilisateur comme suspect, et peut-être même une tentative de percer dans un système. Sécurité. Je fortement vous encourageons à essayer de faire changer le backend afin que l'ID d'appel AJAX est passé à travers un certain type de données GET ou POST. Soit que le backend gèrera l'ID d'appel AJAX, peut-être même en transmettant un tableau d'ID plausibles à la page que le script utilisera (par exemple var ajaxCallIds = [1337, 256, 11, 99].)

La façon de résoudre votre problème de code dépend de vous , mais gardez à l'esprit qu'il y a rarement, voire jamais, une situation qui nécessite une manipulation côté client des cookies mis en place et utilisés par le code d'application côté serveur.