Bu nasıl Bookmarklet Bu site içine imzaladı kalmak için izin verir?

2 Cevap php

2 Cevap

Yeni başlayanlar için, burada Bookmarklet yürütür kod:

(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);
}

}) ();

Ne yapar oldukça basittir. Bu Evernote sitesinden bir komut dosyası kapmak için çalışır ve her zaman taze bir kopyasını çeker böylece isteğine bir zaman damgası ekler. Eğer başarılı olursa, JavaScript bir demet Evernote tüm işlevselliği maruz ve iframe sonra emin giriş yaptığınızdan emin standart çerezler, vb kullanılabilir ve sonra isteğinizi işleme hangi bir iframe oluşturur sayfasına eklenir .

Catch bloğu bunu oradan içerik kırpmadan ki (ben tahmin ediyorum) Evernote sitesine yönlendiriliyorsunuz konum neden olan, dinamik script yükleme başarısız sadece durumda olduğunu.

Hala oturum nasıl belirli bir soruya cevap için, tarayıcı şimdi (www.evernote.com) Evernote site için oturum çerezleri çünkü hala oturum konum, yani iframe ikinci sitede açtığında bu tanımlama onunla gitmek ve Evernote çerezleri kullanarak oturum konum tanır web oturumları için hemen hemen standart, bu yüzden burada özel bir şey yapmıyoruz ve ben güvenlik sorunları için SO arayabilirsiniz eminim çerez tabanlı oturumlar çevreleyen.

Ana nokta iframe aslında bu konum web sitesi biliyor bu yüzden bazı sınırlı veri iframe temel sayfa geçirilecek sağlayan açık dışında ayrı bir pencere olması gibi olduğunu.

Umut olur.

Muhtemelen çerezleri kullanıyor. Onlar büyük olasılıkla kendi sitesinde bir php sayfası, JavaScript, bir iframe açmak, sonra site varsa, sitenin kullanıcı bilgilerini çeker, bir giriş çerez arar ve onun şeyi yapar.

Just be careful, you need a way to verify that the cookie wasn't created by the user to trick the site. I would store a random string in a cookie, and also in the database (in the user table). Create the random string whenever the user logs in. When the user tries to use the bookmarklet, compare the two strings, and only allow access if they are equal, if they aren't, delete the cookies, and ask the user to login.. This makes sure an attacker can't just make a cookie with the user's ID and take over their account (the attacker would need the random string, generated each login, which would be hard to obtain).. Also, set the cookies to delete when the browser session is ended..

Hoped that helped, Max