Paylaşımlı hostingde kasıtları Free Hostingler ise dedikleri doğru olabilir.

Web.config dosyanın içerisinde Session TimeOut değerini kontrol et, yoksa ekle.
timetout'a gireceğin değer dakika cinsinden değerlendirilir.

<system.web>
<sessionState timeout="20"></sessionState>
</system.web>

Sessionlar neden kaybolur. Normal şartlar altında:

Web.config içerisinde herhangi bir değişiklik olursa,
/Bin/ klasörü içerisinde herhangi bir değişiklik olursa,
Ayarlanan süre içerisinde kullanıcı herhangi bir işlem yapmazsa. (Sayfalarda dolaşsın kapanmaz)
Kullanıcı kendisi tarayıcıdan çerezlerini silerse,(ASP.Net_SessionId çerezini silmesi)

Bu durumlarda Session'a atanan verir elbette silinecektir.

Yukarda saydıklarım tamam fakat yinede session bilgisi siliniyorsa server yöneticisi bunu öyle ayarlamıştır, yapacak birşey yok.

Çözüm ürün bilgisi için benzersiz bir cookie oluştur, veritabanına yazdır, sonra kontrol ettir.
Kontrol için replace v.b güvenlik elemanlarını unutma.
Güzel bir algoritma ayarla.

Cerez güvensiz diye birşey yok, güvensiz kodlama vardır.