Aviseringar
Rensa alla

Buggrapporteringstråden


Åtta

Mario: Under tiden jag skrev min kommentar postades ett annat svar i tråden. Kan det ha varit en orsak till felet?

Enligt loggarna verkar det som att SecurityComponent blackholade din förfrågan. Tog du vansinnigt lång tid på dig att komponera din kommentar, så att token gick ut? Det borde inte ha någon betydelse att någon skrev en post, men jag ska undersöka saken.


   
SvaraCitera
Mario

Åtta:
Enligt loggarna verkar det som att SecurityComponent blackholade din förfrågan. Tog du vansinnigt lång tid på dig att komponera din kommentar, så att token gick ut? Det borde inte ha någon betydelse att någon skrev en post, men jag ska undersöka saken.

Definiera "vansinnig" och "tid". Räknas tiden från att jag laddade sidan första gången? Fortsätter min token vara giltig även om jag laddar andra sidor i andra flikar?

Jag kan ha laddat sidan, gått och gjort research och sedan kommit tillbaka. Jag har nästan garanterat laddat andra UM-sidor i andra flikar.


   
SvaraCitera
Mario

Mario:

 Fortsätter min token vara giltig även om jag laddar andra sidor i andra flikar?

Mina tester visar att svaret på den frågan är "nej". Jag började skriva ett svar i http://ungdomar.se/forum/thread/testa-buggar-haer-potentiellt-farligt men öppnade min profil i en ny flik innan jag postade. När jag postade fick jag "Hoppsan nu har UM fistat dig fel igen"-sidan.


   
SvaraCitera
Åtta

Mario:
Definiera "vansinnig" och "tid". Räknas tiden från att jag laddade sidan första gången? Fortsätter min token vara giltig även om jag laddar andra sidor i andra flikar?

Jag kan ha laddat sidan, gått och gjort research och sedan kommit tillbaka. Jag har nästan garanterat laddat andra UM-sidor i andra flikar.

Vansinnig > 30 minuter. Token borde fortsätta vara giltig även om du öppnar andra flikar. Gör den det inte så är det ett allvarligt fel.
EDIT: Testade lokalt nu, och då var det inga problem att öppna andra flikar. 


   
SvaraCitera
Mario

Åtta: EDIT: Testade lokalt nu, och då var det inga problem att öppna andra flikar.

Märkligt. Nu går det för mig i buggtesttråden också. Du kan kika på vad jag fick för fel precis innan kl 14:10. Jag tror att jag endast skrev "SecurityComponent" i svaret den gången.

Kanske behöver felmeddelanden vara mer detaljerade än bara vilken komponent som loggat felet?

När jag försökte posta det här svaret fick jag felmeddelandet igen! Kl 14:21 alltså.


   
SvaraCitera
Åtta


Mario
: Märkligt. Nu går det för mig i buggtesttråden också. Du kan kika på vad jag fick för fel precis innan kl 14:10. Jag tror att jag endast skrev "SecurityComponent" i svaret den gången.

Kanske behöver felmeddelanden vara mer detaljerade än bara vilken komponent som loggat felet?

När jag försökte posta det här svaret fick jag felmeddelandet igen! Kl 14:21 alltså.

Gick du in på din profil innan? I den ocean av 404:or som loggen svämmar över bland ser jag två utstickare. 1. Black hole från SecurityComponent. 2. NotFoundException (också en 404, men den formatteras lite annorlunda) från ditt enorma RSS-flöde. 

EDIT: Aha! Testade att gå in på din profil innan jag postade det här, och då fallerade det!


   
SvaraCitera
Mario

Åtta: Gick du in på din profil innan?

Minns inte exakt men jag tror inte att jag gjorde det. Jag försökte bara posta ett svar här.

Åtta: Aha!

Jag försökte samma sak i buggtesttråden nu (skrev svar, besökte min festliga profil i annan flik, postade svar) utan att lyckas provocera fram felet.

Jag har försökt provocera fram felet med dessa metoder utan resultat:

  • Börja skriva svar i en flik, men posta från en annan flik i samma tråd först.
  • Börja skriva ett svar men vänta tills någon postar ett svar i en annan tråd innan jag postar.
  • Börja skriva svar, besöka min profil innan postning.

   
SvaraCitera
Åtta

Mario: Börja skriva svar i en flik, men posta från en annan flik i samma tråd först.

Det här kan jag förstå att det misslyckas, eftersom tokens är engångsartiklar. Efter att en token används är den inte giltig längre (det kan vi också åtgärda). Men de andra förbryllar mig...


   
SvaraCitera
Mario

Åtta: Det här kan jag förstå att det misslyckas, eftersom tokens är engångsartiklar. Efter att en token används är den inte giltig längre (det kan vi också åtgärda). Men de andra förbryllar mig...

Du missförstår mig: Inget av det i punktlistan lyckades provocera fram felet. De gick alltså igenom!


   
SvaraCitera
Åtta

Mario:
Du missförstår mig: Inget av det i punktlistan lyckades provocera fram felet. De gick alltså igenom!

Aha. Det är ju ännu konstigare. Mycket glad Den första saken du nämnde borde inte fungera.

EDIT: nej förresten, det är jag som är dum i huvudet. Det skulle visst fungera.


   
SvaraCitera
Mario

Nu lyckades jag igen. Jag öppnade två instanser av http://ungdomar.se/forum/thread/testa-buggar-haer-potentiellt-farligt/ samma sekund (två snabba klick på skrollhjulet för att få nya flikar). Jag kunde bara posta från den ena. Den andra fick "Hoppsan, nu har du kommit fel".

Hur genereras era tokens? Framförallt: Kan olika användare få samma token samtidigt?


   
SvaraCitera
Åtta

Mario:
Hur genereras era tokens? Framförallt: Kan olika användare få samma token samtidigt?

https://github.com/cakephp/cakephp/blob/master/lib/Cake/Controller/Component/SecurityComponent.php#L525

Det känns väldigt osannolikt att flera användare skulle få samma token samtidigt.


   
SvaraCitera
Mario

Åtta: Det känns väldigt osannolikt att flera användare skulle få samma token samtidigt.

Läs koden så ser du att tokens sparas i sessionen och därmed alltid är personliga 🙂

De verkar skapas av String::uid() som ser säker ut, men det kan vara värt att testa att microtime() ger mikrosekunder på er plattform samt att mt_rand() fungerar.

Hur många tokens kan man ha samtidigt (standard är 100)? Hur många filer vid en sidladdning går via PHP-tolken?


   
SvaraCitera
Mario

En till sak att testa: Vilken token läggs till om det redan finns en token? Rad 549 i SecurityComponent.php verkar bara köras om alla tokens gått ut.


   
SvaraCitera
Mario

Glöm mitt sista inlägg. csrfUseOnce=true gör att den raden alltid körs.


   
SvaraCitera