it-swarm-tr.com

Oturum kimliğini neden url parametresi güvenli değil olarak iletiyor?

Kısa bir süre önce, bir kişinin oturum kimliğini url parametresi olarak geçirmenin güvenli olmadığını ve bunun yerine çerezlerin kullanılması gerektiğini belirten bir tartışma izledim. Diğer kişi bunun tersini söyledi ve örneğin Paypal'ın güvenlik nedenlerinden ötürü oturum kimliğini url parametresi olarak geçirdiğini savundu.

Oturum kimliğini url parametresi olarak iletmek gerçekten güvenli değil mi? Çerezler neden daha güvenlidir? Bir saldırganın her iki seçenek (çerezler ve url parametresi) için ne gibi olasılıkları vardır?

59
Jonathan Egerton

Web sitelerinin çoğu kullanıcının oturum açma durumunu oturumda saklar ve bir saldırganın oturum kimliği varsa, oturum açan kullanıcının ayrıcalıklarına da sahiptir. Başka bir deyişle, oturumun sürdürülmesi ve kimlik doğrulamanın iki kaygısı sıklıkla birleştirilir.

Bir sorun, oturum sabitleme saldırıları yapmak kolaydır. Bu durumda, bir saldırgan kullanıcıya bilinen bir oturum kimliğiyle hazırlanmış bir URL gönderir. Kullanıcı bu URL'yi tıklar ve bir giriş yaparsa, saldırganın ayrıcalıkları olan bir oturumu olur. Web sitesi bir çerez gerektiriyorsa, bir e-postada hazırlanmış bir URL yeterli olmaz.

Bir site HTTPS ile karıştırılmış HTTP kullanıyorsa, kimlik tüm HTTP istekleri (hatta bir resim isteği için) için URL'de düz metin olarak iletilir. Dolayısıyla, saldırgan kullanıcı oturum açtıktan sonra tek bir HTTP isteğini okuyabiliyorsa, oturum kimliğini bilir.

Sorundan çıkmanın bir yolu, iki endişeyi ayırmak, oturumu ve kimlik doğrulamasını korumak olacaktır. Daha sonra, yalnızca oturumu korumak için oturum kimliğini korumasız bırakabilir ve oturum açma durumunu kontrol etmek için ayrı bir çerez kullanabilirsiniz. Bu çerez yalnızca HTTPS sayfalarına gönderilecek şekilde yapılandırılmalıdır.

23
martinstoeckli

Charles ve Martin'in söylediklerine ek olarak, URL'ye herhangi bir şey koymak, sızıntı yapma olasılığını artırır. Bu, bağlantılı bir kaynaktaki bir başvuru üstbilgisi aracılığıyla, tarayıcı geçmişi kayıtlarıyla uç noktaya erişimden, kaba kuvvet geçmişinin koklamasından, uygunsuz şekilde korunan web günlüklerinden vb. Olabilir. Bu nedenle, gizli olmasını istediğiniz herhangi bir şeyi bir URL/sorgu dizesine koymak genellikle önerilmez.

URL'lerde sunucu oturumu kimlikleri kullanarak Paypal'ı görmedim. Gerçekten çerezlerden daha güvenli olmasının hiçbir yolu yoktur; tipik olarak geçmişte yapılmasının nedeni, çerezleri etkinleştirmeden tarayıcıları desteklemekti. Bu, bu günlerde daha az endişe kaynağıdır ve oturum sabitleme saldırılarına ek olarak bağlantıları paylaşmamak için kullanılabilirlik sorunları, bugün URL'de oturumun genellikle önlendiği anlamına gelir.

15
bobince

Birkaç yıl önce gördüğüm bir şey, birisinin Twitter'a bir URL (sessionid İLE) kopyalamasıydı. Daha sonra tüm takipçilerin bu sitede o kişi hesabına tam erişimi oldu.

Bu yüzden evet, URL'ye bir oturum kimliği koymak kötü bir fikirdir.

7
Niels Basjes