HTTP temel kimlik doğrulaması olan bir sunucum var ve yukarıdaki HTTP sunucusu için kullanıcı adı ve şifreyi bilen istemci komut dosyasına sahibim. Yetkilendirme üstbilgilerini ayarlamak için XHR
isteğini kullanıyorum ve setRequestHeader
kullanıyorum, bu bit tarayıcının varsayılan HTTP oturum açma iletişimini sormasını engelliyor.http başlıklarını tarayıcı tarafından oluşturulan isteklere ayarlayın.
request.setRequestHeader('Authorization', authInfo);
Bu AJAX için ister, ancak durumda bahsettiğim sunucudan dosya indirmek istiyorum ve AJAX olmadan gidip tarayıcı isteğini kendisi oluşturup nerede JavaScript dan window.location.href
gibi bir şey kullanmak zorunda değilim normaldir. Bu istek Yetkilendirme üstbilgisini içermediğinden (brwoser, her istek için Yetkilendirme başlığını, yalnızca oturum açma iletişimini istedikten ve gerçek sunucu için giriş bilgilerinin taban64'ü kaydedildikten sonra otomatik olarak ekler) tarayıcım, kaçınmak istediğim HTTP oturum açma iletişimini ister.
Tarayıcı tarafından oluşturulan non-ajax istekleri için üstbilgileri ayarlamanın bir yolu var mı?
[CSRF saldırıları] için auth tanımlama bilgilerinin kötüye kullanılabileceğini unutmayın (http://en.wikipedia.org/wiki/Cross-site_request_forgery) – user123444555621
Teşekkürler, bu işe yaradı. Ne yazık ki, sunucu tarafında kod yorumcum yok, bu yüzden ikinci yoldan gelemiyorum. – ggat
İlk yaklaşım hakkında sadece bir not, örneğin: base64 kodlanmış bir şey gibi kullanıcı şifresini bir yolu var mı. Sanırım bu, örneğin base64 kodlu kullanıcı ve şifrenin URL'ye gönderilmesi, sunucu tarafında bu dizinin kodunun çözülmesi ve apache ile yeni URL'nin yeniden yönlendirilmesi yoluyla yapılabilir. Bu indirildiğinden kullanıcı tarayıcıların adres çubuğuna kodu çözülmüş URL'yi görmeyecektir. Fakat şunu soruyorum, bunu yapmak için yerel bir yol var. – ggat