Vinnaren i pepparkakshustävlingen!
2022-01-07, 15:32
  #1
Medlem
dengo.dajordens avatar
Vi performar en login på en website som redirectar till en third-party security login sida med Firefox 96.0.2

När login är godkänt placerar third-party en cookie i min webbrowser och processen kan fortsätta.

Vi vill kunna detektera när cookien har placerats.

Ser på Mozillas help att cookien ska läggas i profile dir men där ser jag inga cookies alls.

http://kb.mozillazine.org/Profile_folder

http://kb.mozillazine.org/Cookies


"Where are cookies stored? Cookie information is stored in the profile folder, in two files."

Har fiskat i alla directories runtomkring, Roaming, etc men ingen verkar lagra cookien.

Har foldern profile med File Explorer öppen samtidigt som login processen genomförs men ingen cookie hamnar där.

Var lagrar Firefox sina cookies?

Kan man på något sätt aktivera en gate keeper så att jag ska godkänna att en fil installeras och därmed veta var den installeras? Jag vill ha cookien men jag vill veta var den hamnar.
Citera
2022-01-07, 16:22
  #2
Medlem
Enterprises avatar
Citat:
Ursprungligen postat av dengo.dajorden
Vi performar en login på en website som redirectar till en third-party security login sida med Firefox 96.0.2

När login är godkänt placerar third-party en cookie i min webbrowser och processen kan fortsätta.

Vi vill kunna detektera när cookien har placerats.

Ser på Mozillas help att cookien ska läggas i profile dir men där ser jag inga cookies alls.

http://kb.mozillazine.org/Profile_folder

http://kb.mozillazine.org/Cookies


"Where are cookies stored? Cookie information is stored in the profile folder, in two files."

Har fiskat i alla directories runtomkring, Roaming, etc men ingen verkar lagra cookien.

Har foldern profile med File Explorer öppen samtidigt som login processen genomförs men ingen cookie hamnar där.

Var lagrar Firefox sina cookies?

Kan man på något sätt aktivera en gate keeper så att jag ska godkänna att en fil installeras och därmed veta var den installeras? Jag vill ha cookien men jag vill veta var den hamnar.
Du kan väl komma åt alla cookies som sparas i browsern hos en viss hemsida när du står på sidan i browsern?

https://www.cookieyes.com/how-to-che...site-manually/


Edit:
Om du vill in i SQlite-filerna och rota:
Citat:
Firefox stores your profile folder in this location on your computer, by default:
C:\Users\<your Windows login username>\AppData\Roaming\Mozilla\Firefox\Profiles \
Windows hides the AppData folder by default but you can find your profile folder as follows:

Press Windows Key+R on the keyboard. A Run dialog will open.
Type in:
%APPDATA%\Mozilla\Firefox\Profiles\
Click OK. A window will open containing profile folders.
Double-click the profile folder you wish to open. If you only have one profile, its folder would have "default" in the name.
Alternatively, you can find your profile by pressing the Windows Key key and then start typing: %APPDATA%\Mozilla\Firefox\Profiles\
Note: To set Windows to show the AppData folder and other hidden files and folders, see Show hidden files - Windows Help.
https://support.mozilla.org/en-US/kb...ores-user-data

Profilen innehåller bl.a:
Citat:
Cookies:

cookies.sqlite
A cookie is a bit of information stored on your computer by a website you’ve visited. Usually, this is something like your site preferences or login status. Cookies are all stored in this file.
__________________
Senast redigerad av Enterprise 2022-01-07 kl. 16:28.
Citera
2022-01-07, 18:00
  #3
Moderator
Protons avatar
Citat:
Ursprungligen postat av dengo.dajorden
Vi performar en login på en website som redirectar till en third-party security login sida med Firefox 96.0.2

När login är godkänt placerar third-party en cookie i min webbrowser och processen kan fortsätta.

Vi vill kunna detektera när cookien har placerats.

Ser på Mozillas help att cookien ska läggas i profile dir men där ser jag inga cookies alls.

http://kb.mozillazine.org/Profile_folder

http://kb.mozillazine.org/Cookies


"Where are cookies stored? Cookie information is stored in the profile folder, in two files."

Har fiskat i alla directories runtomkring, Roaming, etc men ingen verkar lagra cookien.

Har foldern profile med File Explorer öppen samtidigt som login processen genomförs men ingen cookie hamnar där.

Var lagrar Firefox sina cookies?

Kan man på något sätt aktivera en gate keeper så att jag ska godkänna att en fil installeras och därmed veta var den installeras? Jag vill ha cookien men jag vill veta var den hamnar.
Du borde ju kunna kolla när de sätts med devtools i firefox? Hjälper denna?
https://superuser.com/questions/3921...ozilla-firefox
Citera
2022-01-07, 19:24
  #4
Medlem
a-mortals avatar
Citat:
Ursprungligen postat av dengo.dajorden
Vi performar en login på en website som redirectar till en third-party security login sida med Firefox 96.0.2

När login är godkänt placerar third-party en cookie i min webbrowser och processen kan fortsätta.

Vi vill kunna detektera när cookien har placerats.

Ser på Mozillas help att cookien ska läggas i profile dir men där ser jag inga cookies alls.

http://kb.mozillazine.org/Profile_folder

http://kb.mozillazine.org/Cookies


"Where are cookies stored? Cookie information is stored in the profile folder, in two files."

Har fiskat i alla directories runtomkring, Roaming, etc men ingen verkar lagra cookien.

Har foldern profile med File Explorer öppen samtidigt som login processen genomförs men ingen cookie hamnar där.

Var lagrar Firefox sina cookies?

Kan man på något sätt aktivera en gate keeper så att jag ska godkänna att en fil installeras och därmed veta var den installeras? Jag vill ha cookien men jag vill veta var den hamnar.

Kod:
if (document.cookie) window.opener.postMessage("woop", "example.com");
https://developer.mozilla.org/en-US/...ow/postMessage
Citera
2022-01-07, 20:32
  #5
Medlem
dengo.dajordens avatar
Uppdatering.

Tack Enterprise och Proton. Jag har identificerat var cookies ligger samt vad de heter och det är korrekt att de finns i profile dir.

Den goda nyheten är att när jag loggar in för hand (med File Explorer öppen i profile dir) ser jag när de 2 cookies skapas som SQLite filer samt att de uppdateras när jag loggar ut från websiten.

Den dåliga nyheten är att när jag kör samma flow med min automation (Python + Selenium) som kör exakt samma steps som jag kör för hand, så syns inga cookies som uppdateras i ovannämnda profile dir.

Jag vibbar att det kan vara att min automation kör lite annorlunda med Selenium driver:


trots att Python öppnar en fysiskt browser (av olika anledningar kör jag inte headless) och till synes kör exakt likadant som för hand men selenium driver lagrar säkert cookies någon annanstans.

Tacksam om någon har fler ideer.
__________________
Senast redigerad av dengo.dajorden 2022-01-07 kl. 20:36.
Citera
2022-01-07, 21:52
  #6
Moderator
vhes avatar
Det här får nog betraktas som en utvecklingsfråga. Då Selenium är inbladat passar den nog bättre i...

IT-säkerhet --> Python
/Moderator
Citera
2022-01-08, 11:45
  #7
Medlem
dengo.dajordens avatar
Såhär ser mitt lösningsförslag ut:


Selenium webdriver sparar Firefox login cookies i en ny temp dir i varje login till skillnad från när man loggar in för hand där det alltid sparas i FF profile dir.

Den cookie dir (ny för varje körning) tillhörande aktuell körning fångas i linje 2 ovan.

Entiteterna i linje 6: 'value', 'raz_cookies', 'name' och 'loggedIn' fick jag när jag stoppade filen cookies.sqlite i https://inloop.github.io/sqlite-viewer/

Orsaken till att jag använder cookie_age_in_secs < 90 är att cookien skapas så fort batch jobbet går in i third party login sidan men 'value' på 'LoggedIn' sätts till 'true' först efter lång processing (storleksordning ms) hos third party.

På linjer 5-6 använder jag en cursor trots att det kan argumenteras det kan göras enklare.

Mitt batch job kör var 30:e minut så med cookie_age_in_secs < 90 bör jag vara safe. När båda villkoren på linje 8 är uppfylda vet jag att jag är inloggad och kan starta klockan, processing tid hos third party är nu exkluderad.

Kuriosa: om batch jobbet aktivt trycker på 'logga ut' knappen eller stänger browsern, raderas 'cookieFile' automatiskt från \temp dir (som har ett nytt random name varje gång).

Man skulle kunna argumentera att 90 sec kravet är överflödig, men den gör å andra sidan ingen skada.

Hela logiken ovan körs under en minut i en loop som 'känner av' konstant och stoppar när 'value' = 'true'. Efter en minut om 'value' <> 'true' time:ar den ut och returnerar 'Login failed'.

Tacksam för synpunkter.
__________________
Senast redigerad av dengo.dajorden 2022-01-08 kl. 12:12.
Citera
2022-01-08, 13:34
  #8
Moderator
vhes avatar
Jag antar att orsaken till att det skapas ett temp-bibliotek är att selenium inte använder din standard-profil, utan uppfinner en ny profil varje körning?

Oavsett så undrar jag om det inte är enklare att angripa det hela från selenium-hållet. Kakan anländer väl rimligen med svaret på en HTTP-request, och det svaret måste du väl kunna fånga i selenium? När svaret kommit vet du väl att kakan är satt? Behöver du verkligen hålla på och grotta bland Firefox interna filer?

Använd gärna kodtaggar när du postar kod, förresten. I synnerhet Python-kod blir ju direkt trasig när indentering försvinner.
Citera
2022-01-08, 14:59
  #9
Medlem
dengo.dajordens avatar
Citat:
Ursprungligen postat av vhe
Jag antar att orsaken till att det skapas ett temp-bibliotek är att selenium inte använder din standard-profil, utan uppfinner en ny profil varje körning?

Oavsett så undrar jag om det inte är enklare att angripa det hela från selenium-hållet. Kakan anländer väl rimligen med svaret på en HTTP-request, och det svaret måste du väl kunna fånga i selenium? När svaret kommit vet du väl att kakan är satt? Behöver du verkligen hålla på och grotta bland Firefox interna filer?


Du har helt rätt och jag tog mig en funderare om jag inte skulle satsa på att fånga en redirect från third party i stället (kod 302 heter det väl eller nåt sånt) men utan att veta hur mycket jobb varje alternativ skulle innebära var jag tvungen att välja väg. Därför.

https://www.tutorialspoint.com/how-t...nium-webdriver

Men jag tvivlar inte en sekund på att det hade blivit en smart lösning också.

I efterhand är jag rätt nöjd med resultatet: funkar + är lite elegant också.


Citat:
Ursprungligen postat av vhe
Använd gärna kodtaggar när du postar kod, förresten. I synnerhet Python-kod blir ju direkt trasig när indentering försvinner.

Oops! meningen var att välja CODE-taggar men det blev SPOILER-taggar. My bad.
Citera
2022-01-08, 16:46
  #10
Medlem
dengo.dajordens avatar
Citat:
Ursprungligen postat av vhe
Kakan anländer väl rimligen med svaret på en HTTP-request, och det svaret måste du väl kunna fånga i selenium? När svaret kommit vet du väl att kakan är satt?

Angående det här specifika punkten, jag beskrev ovan, kakan sätts så fort batch jobbet klickar på "login" knappen och långt innan (i ms) login processen är godkänd.

Vi snackar hundratals ibland tusentals ms så kakan är satt men entiteten 'loggedIn' har fortfarade status 'false'.

Senare kommer en uppdatering och kakan uppdateras till 'loggedIn' = 'true'.

Jo, jo, jag förmodar att allt detta kan fångas i selenium med rätt kod på redirect.

Ville bara poängtera att jag ser att när kakan uppdateras till 'loggedIn' = 'true' är filen cookies.sqlite flera sekunder gammal. Jag måste starta klockan vid 'true' och inte när kakan anländer. Det är just de sekunderna jag behöver exkludera från min tidsmätning. Du förstår vad jag menar.
__________________
Senast redigerad av dengo.dajorden 2022-01-08 kl. 16:50.
Citera

Stöd Flashback

Flashback finansieras genom donationer från våra medlemmar och besökare. Det är med hjälp av dig vi kan fortsätta erbjuda en fri samhällsdebatt. Tack för ditt stöd!

Stöd Flashback