Для начала вот код, который выполняет букмарклет:
(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);
}
}) ();
То, что он делает, относительно просто. Он пытается получить скрипт с сайта Evernote и добавляет к запросу метку времени, чтобы всегда получать свежую копию. Если это удастся, на страницу добавляется набор JavaScript, который создает iframe, из которого открывается вся функциональность Evernote, и iframe может затем использовать стандартные файлы cookie и т. Д., Чтобы убедиться, что вы вошли в систему и затем обработали ваш запрос. .
Блок catch на всякий случай сбой при динамической загрузке скрипта, в результате чего вы перенаправлены на сайт Evernote, так что (я предполагаю), что он может отсечь контент оттуда.
Чтобы ответить на конкретный вопрос о том, как вы все еще вошли в систему, вы все равно вошли в систему, потому что в вашем браузере теперь есть сеансовые куки для сайта Evernote (www.evernote.com), поэтому, когда iframe открывается на На втором сайте эти cookie-файлы идут вместе с ним, и Evernote распознает, что вы вошли в систему. Использование cookie-файлов в значительной степени является стандартом для сеансов в Интернете, поэтому здесь они не делают ничего особенного, и я уверен, что вы можете выполнить поиск SO проблемы безопасности, связанные с сеансами на основе файлов cookie.
Суть в том, что iframe по сути похож на открытое отдельное окно, за исключением того, что он позволяет передавать некоторые ограниченные данные базовой страницей в iframe, чтобы он знал, на каком веб-сайте вы находитесь.
Надеюсь, это поможет.