2010-10-20 15 views
1

Est-il possible de s'assurer que les requêtes GET/POST vers une URL particulière de mon application Appengine, AJAX ou non, ne peuvent être faites qu'à partir de l'application et non depuis l'extérieur? doivent être rejetés.Sécurité de l'URL Google Appengine

Possible?

Répondre

5

Les demandes ne proviennent pas de dans l'application ou à partir un autre domaine. Ils viennent d'un ordinateur, au moyen d'un navigateur, d'un crawler, d'un script ou d'un programme. Cela signifie que votre question n'est pas spécifique à google app engine mais à la programmation web en général. Une approche fragile serait de s'appuyer sur HTTP_REFERRER, mais je ne le recommande pas. Vous devez vous assurer que vos utilisateurs se connectent et n'afficher que les informations critiques pour les utilisateurs que vous connaissez.

1

Les demandes faites depuis votre application (par la file d'attente, etc.) sont automatiquement admin, vous pouvez donc exiger que les demandes soient faites par admin. Ajoutez simplement ce qui suit à votre app.yaml:

- url: /whatever_url_you_want_protected 
    script: your_app.py 
    login: admin 

aussi une bonne idée d'ajouter les fichiers suivants à sauter en bas de votre app.yaml:

skip_files: | 
^(.*/)?(
(app\.yaml)| 
(app\.yml)| 
(index\.yaml)| 
(index\.yml)| 
(#.*#)| 
(.*~)| 
(.*\.py[co])| 
(.*/RCS/.*)| 
(\..*)| 
(tests/.*) 
)$ 

Cela fonctionne pour get/post, ajax, tout type de requête.