2009-12-31 6 views
2

Je suis en train de construire une application qui rend RSS et ATOM sur le côté client. Je ne peux pas envoyer directement une demande ajax à « https://stackoverflow.com/feeds/tag/php », mais je peux envoyer une demande à mon serveur qui echos juste le comme fichier XML:XML externe Faisant écho Fichiers

<?php 
echo file_get_contents('https://stackoverflow.com/feeds/tag/php'); 
?> 

Quelles sont les implications de sécurité (le cas échéant) sur cette opération ?

Répondre

3

StackOverflow est maintenant autorisé à pirater les données de vos clients obtiennent et le remplacer par quelque chose de malveillant ou ennuyeux. (Pour être juste, ils pourraient même si vous étiez en mesure d'utiliser l'URL directement.)

Vos clients sont maintenant autorisés à faire votre beaucoup de demandes à StackOverflow, qui peut vous bloquer pour DOS le site ou quelque chose comme ca. (J'espère que vous appliquez un minimum de mise en cache.)

0

Vous pouvez utiliser le Filter functions pour nettoyer les données avant l'écho. En général, à moins que l'hôte vous obtenez les données à partir est contrôlé par vous et ne permet pas aux utilisateurs généraux de télécharger ou ajouter des données qui seront echo'ed alors je ne lui faire confiance. Vous ne savez jamais ce que quelqu'un pourrait être en mesure de passer à travers.

0

Je voudrais écrire un script qui irait sur Cron chercher les données et rédiger votre propre base de données/système de fichiers/cache (votre choix) et leur donner aux utilisateurs asychrously. Vous ne savez jamais comment lent l'autre serveur répond et si elle répond vraiment lent, il ralentit également votre site.

-1

Vous devez envoyer

header('application/xml'); 

Ensuite, le client se chargera comme XML, et ne XSS peut se produire autant que je peux dire.