2010-04-22 7 views
0

J'ai une base de données avec des informations de comptes d'utilisateurs.
J'ai planifié un travail CRON qui met à jour la base de données avec chaque nouvelle donnée utilisateur qu'elle extrait de leurs comptes. Je pensais que cela pourrait causer un problème, car toutes les demandes proviennent de la même adresse IP et le serveur peut bloquer les demandes de cette adresse IP.Plusieurs demandes à la question du serveur

Est-ce le cas?
Si oui, comment éviter d'être banni? devrais-je utiliser un proxy?

Merci

Répondre

0

est le travail cron qui va chercher les données de cette « base de données » sur le même serveur? Est-ce que vous récupérez des données pour un utilisateur à partir d'un serveur distant en utilisant le raclage d'écran ou quelque chose?

Si c'est le cas, vous pouvez configurer quelques tâches cron différentes et le faire par lots. De cette façon, vous réduisez la quantité de charge sur le serveur distant et vous réduisez les chances d'obtenir vos données, bloquant ainsi votre accès.

Modifier

Ok, donc si vous ne l'avez pas obtenu la permission de faire gratter, évidemment vous allez vouloir do it responsibly (peu importe le site). Essayez de rassembler autant de données que vous le pouvez à partir de demandes aussi petites que possible, et étalez-les au cours de la journée entière, ou même pendant les périodes susceptibles d'être à faible charge. Je ne voudrais pas essayer d'utiliser un proxy, cela n'aiderait pas vraiment le serveur distant, mais ce serait une douleur dans le cul pour vous.

Je ne suis pas un programmeur iPhone, et cela pourrait ne pas être possible, mais vous pouvez essayer d'avoir les iPhones individuels saisir les données de sorte que tout le trafic source ne provient pas de la même adresse IP. Juste une idée, sinon essayez d'être un peu discret.

Voici quelques conseils de Jeff concernant le raclage de Stack Overflow, mais j'imagine que les règles sont similaires pour n'importe quel site.

  1. Utilisez demande GZIP. C'est important! Par exemple, un grattoir a utilisé 120 mégaoctets de bande passante pour seulement 3 310 occurrences, ce qui est substantiel. Avec le support gzip de base (cuit dans HTTP depuis les années 90, et supporté universellement) il aurait été de 20 mégaoctets ou moins.

  2. Identifiez-vous. Ajoutez quelque chose d'utile à l'agent utilisateur (idéalement, un lien vers une URL, ou quelque chose d'informatif) afin que nous puissions voir votre bot comme quelque chose d'autre que "un grattoir anonyme générique inconnu".

  3. Utilisez les bons formats. N'enlève pas le HTML quand il y a un flux JSON ou RSS que tu pourrais utiliser à la place. Heck, pourquoi gratter du tout quand vous pouvez download our cc-wiki data dump ??

  4. Soyez prévenant. Tirer des données plus de toutes les 15 minutes est discutable. Si vous avez besoin de quelque chose de plus opportun que cela ... pourquoi ne pas demander la permission d'abord, et expliquer pourquoi c'est un avantage pour la communauté SO et devrait être autorisé? Notre courriel est lié au bas de chaque page sur chaque site de la famille SO. Nous ne mordons pas ... dur.

  5. Oui, vous voulez une API. Nous avons compris. Ne faites pas rage contre la machine en faisant des choses vilaines jusqu'à ce que nous la construisions. C'est dans la file d'attente.

+0

J'ai créé une application iPhone qui surveille les données des comptes utilisateurs. Par conséquent, il doit se connecter au site de suppression et obtenir les nouvelles données. Actuellement, je n'ai pas d'approbation du site distant. – embedded

+0

Mon problème vient du côté serveur. Ma base de données doit être mise à jour une fois en 4 heures, ce qui signifie que certains travaux CRON devront mettre à jour des utilisateurs entiers et ce, à partir de la même adresse IP, à savoir l'adresse IP du serveur. Je voudrais savoir comment d'autres services font ce genre de tâche. – embedded

0

Vous êtes banni pour une activité suspecte (ou malveillante).

Si vous exécutez une application métier normale dans un intranet d'entreprise normal, il est peu probable que vous soyez banni.

Étant donné que vous avez accès aux informations des comptes utilisateur, vous disposez déjà d'un accès important au système. La meilleure chose à faire est de demander à votre administrateur système, car il/elle définit ce qui constitue une activité suspecte/malveillante. L'administrateur système peut également vous aider à vous assurer que votre base de données est au moins aussi sécurisée que les informations d'origine.

devrais-je utiliser un proxy?

Une procuration pourrait déguiser ce que vous faites - mais vous faites encore. Ce n'est donc pas la manière la plus éthique de résoudre le problème.

+0

Je pense que vous m'avez mal compris. J'ai créé une application iPhone qui surveille les données des comptes d'utilisateurs. Les travaux CRON se connectent au site distant et récupèrent les nouvelles données disponibles pour chaque utilisateur. Je dois juste éviter d'être banni. – embedded

Questions connexes