J'ai cherché toute la journée pour trouver un moyen de comprendre cela, mais sans succès et je pensais que peut-être quelqu'un ici pourrait aider? J'essaie d'utiliser un mot de passe secrete dans mon fichier .Js mais je ne peux pas l'écrire directement dans le fichier car tout le monde peut le voir lors de l'accès au code source. Par exemple, j'ai besoin d'envoyer ce mot de passe en utilisant ajax sur une autre page pour m'assurer que le HttpRequest provient de mon site web et non pas d'un autre forge httprequest.
Est-ce possible parce que j'ai essayé tout le reste comme les formulaires d'authentification, mais cela n'a pas aidé.
J'utilise asp.net et HttpHandler comme page qui retourne des données.Prévenir forge HttpRequests
Répondre
Ce que vous pouvez faire est de générer une clé valide jusqu'à un temps de jeu en utilisant PHP comme ceci:
$password = "some random string";
$key = md5($password . $_SERVER['REQUEST_TIME']) . "|" . $_SERVER['REQUEST_TIME'];
De cette façon, vous savez quand la clé a été générée, et si elle a été trafiqué parce que:
function check($key) {
list($hash, $timestamp) = explode("|", $key, 2);
if ($hash !== md5($password . $key)) {
throw new Exception("Naughty!");
}
if ($timestamp < $_SERVER['REQUEST_TIME'] < 60*60) {
throw new Exception("too old");
}
}
l'inconvénient est que les gens qui n'actualisez la page très souvent (dans mon exemple c'est 1 heure) leur clé expirera. Un autre problème est que votre «attaquant» pourrait techniquement d'abord gratter une page pour obtenir une nouvelle clé et l'utiliser, et gratter à nouveau quand il expire et ainsi de suite.
Cette solution fonctionne très bien pour la protection contre le hotlinking.
Voici comment cela est fait in MVC. Malheureusement, il ne semble pas que la même qualité de sécurité ait été transmise à WebForms (du moins pour autant que je sache).
- 1. Translating CURL FLEX HTTPRequests
- 2. RESTful RAILS et Android HttpRequests
- 3. Annulé AsyncTask bloque new HttpRequests
- 4. Powershell - Temporisation Inexplicable pour HttpRequests
- 5. Endeca Forge Process
- 6. IBM Rational Build Forge Adapters
- 7. Téléchargement de fichiers via trigger.io forge
- 8. PL source forge DOC - 2 questions
- 9. Archetype de soudure vs Seam Forge
- 10. Prévenir Défilement
- 11. HttpRequests .NET en utilisant le système de cache de Windows
- 12. CountdownTimer pour faire une période HttpRequests de l'activité
- 13. Obtenir httprequests dans l'application html5 phonegap (domaine croisé?)
- 14. Prévenir onclick action jQuery
- 15. Prévenir strace d'arguments abrégeant?
- 16. Prévenir l'URL de Paypal
- 17. Prévenir Session.Timeout Extension
- 18. Prévenir "la corruption"
- 19. FOP - prévenir bloc effondrement
- 20. Prévenir le changement d'orientation
- 21. NHibernate prévenir cascade supprimer
- 22. événement javascript Prévenir Hardcoded
- 23. android prévenir apk
- 24. Prévenir NSRangeException dans subarrayWithRange
- 25. Prévenir AlertView rejeter
- 26. Prévenir l'entrée alphabétique
- 27. prévenir postBack - jquery/javascript
- 28. Prévenir animation UINavigationBar popViewController
- 29. Comment prévenir récursion
- 30. prévenir les commentaires spam
La plupart des plates-formes majeures incluent une sorte de jeton antiforgery natif. Cela nous aiderait si nous connaissions le framework Web que vous utilisez. –
ASP.NET 3.5 est ce que vous voulez dire? –