iT邦幫忙

0

前端-所有網站都能用cookie登入嗎?cookie相關問題

  • 分享至 

  • xImage

最近想要練習用cookie來自動登入我常逛的那些網站
不論是論壇阿或甚至是netflix
卻發生很多錯誤跟疑問

首先有兩個問題

1.為什麼用cookieEdit之類的extension得到是josn的cookie
而我f12開發者工具用document.cookie得來的僅有一串字串?
請問這兩個有什麼區別嗎
到底哪一個才是cookie 還是兩個都是 那差別在哪裡呢?

另外 我可以JSON.stringify把我從extension抓到的餅乾
在開發者工具裡面用JS去設值嗎?
還是說兩者不同 抑或是要用別的寫法?

2.如果一個網站可以用cookie登入
那為什麼已經複製過登入的document.cookie 然後登出
把document.cookie="...."貼過去
會出現ERR_BLOCKED_BY_CLIENT
這是什麼情況呢 又該怎麼解決呢?

再來就是我題目問的了
所有網站都能用cookie登入嗎?如果不能 是缺少了session嗎?
是否可以說得到了session+cookie
就絕對能登入一個網站呢

要用js來完成我所有頁面帳戶的自動登出 且永不過期
是可能的嗎

以上 謝謝各位前輩

vsyour iT邦新手 5 級 ‧ 2022-12-28 10:03:56 檢舉
在浏览器的开发者工具中,使用 document.cookie 得到的是一串字符串,而使用插件得到的是 JSON 格式的 cookie。这是因为,在浏览器中,document.cookie 得到的是所有的 cookie 字符串,而插件则将所有的 cookie 解析成了 JSON 格式。

当你使用 document.cookie = "..." 设置 cookie 时,如果出现 ERR_BLOCKED_BY_CLIENT 错误,可能是因为你的代码没有被允许设置 cookie。这是因为,在许多浏览器中,脚本无法设置第三方 cookie,也就是说,只能设置来自当前网站的 cookie。你可以尝试使用同源策略,也就是将 cookie 设置在与当前网站相同的域名下。

不是所有的网站都可以使用 cookie 登录。有些网站使用 session 和 cookie 配合实现登录,有些则使用其他方法。如果要使用 cookie 登录,需要获取到网站登
cookie一堆限制,禁止跨域使用,生命周期過長或過短也會造成瀏覽器的負擔,可存資料量約三四千個字元,也實在是......雞肋,安全性愈來愈高要求的環境,想使用還得先問使用者....所以,能改就改吧
@vsyour 你講的回答好詳細喔 好像AI哈哈哈 謝謝你
@japhenchen 學習到了 謝謝解說
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中
3
㊣浩瀚星空㊣
iT邦大神 1 級 ‧ 2022-12-27 23:34:39
最佳解答

先針對你的主要問題來回答,但其實很難回答的。

所有網站都能用cookie登入嗎?

就單純而言來說,當然都可以。但這需要了解你的問題本質是什麼。
是該網站的設計是用COOKIE來做登入的,還是網頁都可以用COOKIE。
後者來說,一定是可以。但前者則是看開發人員的心思。
就我個人來說,其實我已經沒在用COOKIE來做記錄了。
所以如果是我做的一些站。你的問題就會變得「不能」使用COOKIE登入。

1.為什麼用cookieEdit之類的extension得到是josn的cookie.....

現在瀏覽器為了安全起見。其在F12能看到的COOKIE,都是已經編碼過的。
當然其編碼是可以被還原的。
但也並非是所有的COOKIE值有被編碼過。主要還是要看前端語言。
由於我已經捨棄了COOKIE。所以對這方面並沒有多研究。
所以可能沒辦法跟你說的很清楚。

2.如果一個網站可以用cookie登入...

這其實要看網站的特性。就如上面說過,其大多是被編碼過的。
而編碼的對應KEY值。並不是每一個連結都是相同的。
且其編碼大多會有內定的時間值。
而且你碰上的是「ERR_BLOCKED_BY_CLIENT」
這代表者其COOKIE的值已經無法跟網站相對應了。
一般會發生這樣的事,大多是時間跑掉、磁碟損壞、中毒了、被擋掉。以及你的手賊手動輸入
試想如果真的可以這樣做。那網站還有安全性嘛?

最後,回來你原本的問題。能否可以用COOKIE登入,答案是「可以」「也不可以」
如果你有辦法去牽析正確的COOKIE對應並對其做生成處理。
當然「可以」做到。
但那只有比較兩光的網站才能給你這樣幹。正常來說,是不可以的。
至於是否跟SESSION有關係。我也只能告訴你。或許有關係。
但這其實得看網站開發者如何去做處理。並沒有一定的答案。

您回答得很清楚 謝謝你的分析 學到很多

2
froce
iT邦大師 1 級 ‧ 2022-12-28 08:37:11
  1. cookies只是「存放在瀏覽器」的鍵值對,用F12從瀏覽器取出後你要用什麼方式表示、儲存,只要你方便就好,JSON只是其中一種方式。
  2. session是存放在伺服器中的,一種常見的登入方式是在cookies裡存session ID,也就是在seesion的一串加密後的唯一值,伺服器對其比對,判斷這個會員是否有登入、是否過期。
  3. 既然會員過期是在後端判斷的,你沒有伺服器的完全控制權,當然不可能讓你的cookies完全不過期。js能做的頂多是自動在前端幫你填入帳號密碼按登入按鈕...
  4. 瀏覽器端的JS功能侷限,要自動化請去學爬蟲,有網頁基礎很快就能學會。

簡單的解說 也很易懂 謝謝分想

0
揮揮手
iT邦研究生 5 級 ‧ 2022-12-28 12:04:43

因為你在自學
推薦去查詢 驗證相關的商業邏輯概念
http 相關可以看一下
https://developer.mozilla.org/zh-TW/docs/Web/HTTP/Cookies

謝謝你提供資源 我會去閱讀的 感謝前輩

我要發表回答

立即登入回答