Frage

Ich bin gekommen, über Evernote Bookmarklet und frage mich, wie dies funktioniert.

Sie können es einfach per Drag auf Ihre Lesezeichen und gehen Sie zu einer Webseite, klicken Sie auf diese Bookmarklet, und es wird Sie sich einloggen fragen in. Das alles habe ich schon getan und wissen, wie es funktioniert.

Das Bit, dass ich nicht verstehe, ist, dass, wenn Sie sich in sie authentifizieren, und ermöglicht es Ihnen, Sachen zu unterbreiten (in diesem Fall eine Website-URL usw.). Wenn Sie das Bookmarklet fertig sind, die eine kleine Overlay auf der Seite platziert Sie verschwindet sehen.

  

Wenn Sie zu einem neuen Tab gehen und verwenden Sie die   Bookmarklet wieder sind Sie noch angemeldet   im! Wie?

Ich kann sehen, sie werden mit einem iFrame, wenn ihr Bookmarklet lädt das Overlay auf der Seite - aber setzen sie Cookies oder so etwas? Wenn ja, dann ist dies sicher? Jeder kann die Werte ändern? Oder verwenden sie irgendeine Art von privaten / öffentlichen Schlüsselsystem

BTW, würde Ich mag dieses Bookmarklet mit PHP / Javascript (JQuery vielleicht) replizieren. Ich würde es begrüßen, wenn jemand kann mir helfen, zu verstehen, wie sie dies tun, oder zeigen Sie mir relevante Tutorials.

Danke alle für jede Hilfe.

War es hilfreich?

Lösung

Für den Anfang, hier ist der Code die Bookmarklet ausführt:

(function(){
    EN_CLIP_HOST = 'http://www.evernote.com';

try{
    var x = document.createElement('SCRIPT');
    x.type='text/javascript';
    x.src = EN_CLIP_HOST + '/public/bookmarkClipper.js?' + (new Date().getTime()/100000);

    document.getElementsByTagName('head')[0].appendChild(x);

} catch(e) {

    location.href = EN_CLIP_HOST + '/clip.action?url=' + encodeURIComponent(location.href) + '&title=' + encodeURIComponent(document.title);
}

}) ();

Was sie tut, ist relativ einfach. Es wird versucht, einen Skript aus der Evernote-Website zu packen und fügt einen Zeitstempel auf die Anforderung, so dass es immer eine neue Kopie zieht. Wenn das erfolgreich ist, wird ein Bündel von JavaScript auf der Seite hinzugefügt, die einen iframe baut, aus dem alle die Funktionalität von Evernote ausgesetzt ist und der Iframe kann dann Standard-Cookies, etc. verwendet, um sicherzustellen, sind Sie angemeldet und dann Ihre Anfrage bearbeiten .

Der catch-Block ist nur für den Fall des dynamischen Skript Laden fehlschlägt, in denen führen, dass Sie auf die Evernote-Website umgeleitet sind so (ich vermute), dass es den Inhalt von dort befestigen kann.

Um die spezifische Frage zu beantworten, wie Sie in noch angemeldet sind, sind Sie noch angemeldet, weil Ihr Browser hat nun die Session-Cookies für die Evernote-Website (www.evernote.com), so dass, wenn der Iframe öffnet sich auf der nach oben zweite Stelle, gehen diese Cookies mit ihm und Evernote erkennt an, dass Sie angemeldet sind. Verwendung von Cookies ist so ziemlich der Standard für Sitzungen über das Internet, so sind sie etwas besonderes hier nicht tun, und ich bin sicher, können Sie suchen sO die Sicherheitsprobleme Cookies in Ihrem Browser-Sitzungen umgeben.

Der wichtigste Punkt ist der iframe ist im Wesentlichen wie ein separates Fenster geöffnet hat, außer dass es einige begrenzte Daten können von der Basisseite an den iframe weitergegeben werden, damit sie wissen, was Website Sie sind auf.

Ich hoffe, das hilft.

Andere Tipps

Sie werden wahrscheinlich mit Cookies. Sie höchstwahrscheinlich ein iframe zu öffnen, mit JavaScript, um eine PHP-Seite auf ihrer Website, dann die Website suchen nach einem Login-Cookie, wenn es da ist, der Standort der Benutzer Informationen zieht, und macht seine Sache.

Nur vorsichtig sein, müssen Sie einen Weg, um zu überprüfen, dass das Cookie nicht vom Benutzer erstellt wurde, die Website zu betrügen. Ich würde speichern Sie eine zufällige Zeichenfolge in einem Cookie, und auch in der Datenbank (in der Benutzertabelle). Erstellen Sie die zufällige Zeichenfolge, wenn sich der Benutzer anmeldet. Wenn der Benutzer versucht, das Bookmarklet zu verwenden, die beiden Strings zu vergleichen und nur den Zugriff ermöglichen, wenn sie gleich sind, wenn sie nicht sind, löschen Sie die Cookies und bitten Sie den Benutzer zu Anmeldung. . Dies stellt sicher, kann ein Angreifer nicht nur ein Cookie machen mit der Benutzer-ID und ihrem Konto übernehmen (die Angreifer die zufällige Zeichenfolge, jede Login erzeugt werden müßte, was zu erhalten schwierig wäre) .. Außerdem setzen die Cookies zu löschen, wenn der Browser-Sitzung beendet wird ..

Hoffte das hilft, Max

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