gpt4 book ai didi

php - 此书签如何让您保持登录到此站点?

转载 作者:可可西里 更新时间:2023-10-31 23:26:15 24 4
gpt4 key购买 nike

我遇到过Evernote's bookmarklet并且想知道这是如何工作的。

您可以将它拖到您的书签上,然后转到任何网页,单击该书签,它会首先要求您登录。所有这些我都已经完成并且知道它是如何工作的。

我不明白的一点是,当您登录时,他们会验证您的身份并允许您提交内容(在本例中为网站 URL 等)。完成后,在您正在查看的页面上放置一个小覆盖层的小书签就会消失。

When you go to a new tab and use the bookmarklet again you are still logged in! How?

当他们的书签工具将叠加层加载到页面上时,我可以看到他们正在使用 iFrame - 但他们是否设置了 cookie 或其他东西?如果是这样,这安全吗?任何人都可以更改这些值吗?或者他们使用某种私钥/公钥系统

顺便说一句,我想使用 PHP/Javascript(可能是 JQuery)复制这个 Bookmarklet。如果有人能帮助我了解他们是如何做到这一点或指出相关教程,我将不胜感激。

感谢大家的帮助。

最佳答案

对于初学者,这是小书签执行的代码:

(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 block 是为了防止动态脚本加载失败,这会导致您被重定向到 Evernote 站点,因此(我猜)它可以从那里剪辑内容。

要回答关于您如何仍处于登录状态的具体问题,您仍然处于登录状态是因为您的浏览器现在具有 Evernote 站点 (www.evernote.com) 的 session cookie,因此当 iframe 在第二个站点,这些 cookie 随之而来,Evernote 会识别出您已登录。使用 cookie 几乎是网络 session 的标准,因此他们在这里没有做任何特别的事情,我相信您可以搜索 SO围绕基于 cookie 的 session 的安全问题。

要点是 iframe 本质上就像打开一个单独的窗口,只是它允许基本页面将一些有限的数据传递给 iframe,以便它知道您在哪个网站上。

希望对您有所帮助。

关于php - 此书签如何让您保持登录到此站点?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2534939/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com