Wie man am besten Bildschirm kratzt ein Passwort geschützten Standort im Auftrag einer dritten Partei?

StackOverflow https://stackoverflow.com/questions/801115

Frage

Ich möchte ein Programm schreiben, das Ihre Fantasie-Baseball-Team analysiert und informiert Sie über den empfohlenen Aktionen, möglicherweise mehrmals pro Tag. Das Problem ist, sind Sie nicht spielen Fantasy Baseball auf meiner Website, sind Sie auf Yahoo spielen oder cbs, oder espn, etc.

Auf den meisten dieser Websites, Teams und Ligen sind nicht öffentlich, so dass Sie müssen angemeldet sein, und ein Mitglied der Liga, die Teams in der Liga zu sehen.

Alles, was ich brauche die Ebene html für das Team Seite auf jeder dieser Seiten ist zu meinem Server gesendet werden, wo ich dann die Datei analysieren und analysieren und Benutzer-Benachrichtigungen senden.

Das Problem ist, dass ich Benutzername / Passwort-Kombinationen leicht, diese Daten auf meinen Server bekommen , wenn Ich brauche es, und ich denke, es wird eine Menge von Menschen, die nicht wollen, würden betrauen ihre yahoo / espn / cbs Passwort für mich.

Ich habe mit mehreren Möglichkeiten kommen, dieses Problem zu lösen:

  1. Der offensichtlichste Weg ist für ihre Anmeldeinformationen für die Website zu stellen, an dem ihr Team gehostet wird. Dann könnte ich nur programmatisch anmelden und fordern Sie die Daten, die ich brauche. Ich bin eine Reihe von Leuten zu raten wäre komfortabel mir ihre Anmeldeinformationen zu geben, und eine Reihe von ihnen nicht so viel.

  2. Schreiben Sie einen Desktop-Client, die der Benutzer dann zum Download. Der Kunde würde ihre Anmeldeinformationen erfordern, aber es könnte dann genau im Grunde das gleiche tun, dass die Server-basierte Version tun würde, melden Sie sich an, fordern Sie die Seite, und die Seite zurück zu meinem Server senden. Der Unterschied ist, dass ihr Passwort nie ihren Desktop verlassen müssen. Ihre Computer müßten auf sein, und das Programm läuft für diese Methode zu arbeiten.

  3. Write Browser-Add-ons, die auf der Seite navigieren ich brauche, verwenden Sie das Cookie, das von einer vorherigen Anmeldung anmelden auf der Website, und senden Sie die Seite zurück zu meinem Server gespeichert wird. Dies gilt nicht meine Software erfordert immer für ihr Passwort zu fragen, aber wenn das Cookie abläuft ich abgespritzt bin, und ich weiß nicht viel über Browser-Add-ons neben.

Ich bin sicher, es gibt andere Möglichkeiten, aber diese sind, was ich mit so weit habe kommen.

Ich habe zwei Fragen: 1. Was sind die anderen Möglichkeiten für diese Art von Aufgabe? 2. Bin ich überschätzen Menschen Abneigung mir zu geben, ihre Yahoo (zum Beispiel) Passwort vergessen? Ist Option (1) über die offensichtliche Wahl?

Es wurde in den Kommentaren vorgeschlagen, dass ich Yahoo Pipes versuchen, und das sah aus wie ein vielversprechender Vorschlag so erkundete ich es ein bisschen. Nachdem sah nun unter diese , ich glaube nicht, dass eine Option. So sieht es aus wie ich mit der Option gehen werde 1.

War es hilfreich?

Lösung

Dies ist ein Problem, das ich vor ein paar Jahren gerungen, wenn ich das gleiche tun wollte. Unsere Website ist http://benchcoach.com und die Optionen, die wir folgendes erwogen wurden:

Original wir die Benutzerdaten und Anmeldung in Betracht gezogen zu bekommen. Wir würden dann melden Sie sich an und kratzen ihre Liga und Team Info. Das Problem ist, dass nach mehreren der verschiedenen Nutzungsbedingungen zu lesen, dies auf jeden Fall die Nutzungsbedingungen würde zu verletzen. Hinzu kommt, Yahoo! auf jeden Fall einer der Standorte waren wir erwogen und ihre Benutzer E-Mail (wo wir Zugriff auf sensible Daten erhalten könnten) und Yahoo! Brieftasche. Darüber hinaus wäre es ziemlich trivial sein für Yahoo / ESPN / CBS unsere programmatischen Anmeldungen von IP-Adressen zu blockieren.

Die Lösung, die wir auf dem ständigen (nicht zu 100% zufrieden, aber es scheint zu funktionieren) unseren Benutzer fragt ein Bookmarklet (wie köstlich, digg oder reddit) zu installieren, die die aktuelle HTML-Seite auf unsere Server veröffentlichen würden, wo wir konnten, die Daten analysieren und unsere Datenbank laden. Wenn sie immer noch in ihre Yahoo / ESPN / CBS-Konto angemeldet waren, würden wir sie direkt auf die Seiten lenken, sonst würde prompt diese Seiten für die Authentifizierung. Ein Klick auf das Bookmarklet noch einmal, würde die Seite auf unsere Server senden.

Die Profis dieses Ansatzes war, dass wir nie jemand die Zugangsdaten gesammelt so dass jede Sorge der Sicherheit gelindert worden wäre. Zweitens ist es unmöglich machen würde, für Yahoo / ESPN / CBS Zugang zu unserem Service zu blockieren, da sie nie direkt auf ihre Servern verbinden würden, sondern der Browser des Benutzers würde, den Inhalt ihres Browser an unseren Server sein Posting.

Die Probleme dabei ist, dass es 2 Klicks dauert eine Seite auf unserer Webseite zu veröffentlichen. Für Kopf-an-Kopf-Ligen, mussten wir 3-4 Seiten, so dass es unsere Benutzer 6-8 Klicks nehmen würden ihre Liga auf unsere Server zu synchronisieren. Wir sind immer noch an Optionen für diese suchen.

Ein wichtiger Hinweis ist, dass ich in die Produktmanager der Yahoo Fantasy Football-Website lief vor einem Jahr auf einer Konferenz. Wir haben darüber gesprochen, wie wir die Yahoo-Daten wurden erhalten, und er bestätigt, dass immer Anmeldeinformationen würden ihre TOS verletzen und sie können uns stoppen. Während ich glaube nicht, würden sie haben, wäre es macht es schwer, Zeit und Energie zu investieren, um diese nur zu entwickeln, um sie unsere Website und pissing der Nutzer durch das Schließen ihrer Konten sperren.

Andere Tipps

Eine möglicherweise kompliziertere Antwort möglicherweise mit (zum Beispiel) Yahoo Pipes getan werden könnte.

Hypothetisch, erstellen Sie eine Leitung, die den Benutzer für ihre Anmeldeinformationen aufgefordert und ihnen eine URL, die ihre geschabt Daten enthält. Sie geben Sie diese URL in ihrer Website, und haben nie direkt ihre Anmeldeinformationen zur Verfügung zu stellen. Noch besser ist, für den sicherheitsbewussten, wäre es möglich, zu prüfen, was das Rohr tatsächlich tat, bevor sie eine Eingabe von Informationen.

Der Nachteil Komplexität würde erhöht (wie auch Sie das Rohr schreiben müßten und zu halten). Having said that, den Sie einen Link direkt auf die veröffentlichte Rohr von Ihrer Website zur Verfügung stellen könnte, um die Dinge so einfach wie möglich zu machen.

Option 1 ist die offensichtliche Wahl. Menschen, die Ihre Website vertrauen, die Details liefern. Es gibt keine andere Art und Weise Sie während Screen Scraping anderen Seite einloggen können.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top