2017-01-02 27 views
5

Tôi sử dụng .htaccess để bảo vệ trang web bằng mật khẩu..htaccess Trang web được bảo vệ bằng mật khẩu yêu cầu Mật khẩu ở mọi trang tải lại trên Ipad

Nếu tôi sử dụng các phần tử âm thanh html5 trên trang web đó, Ipad của tôi yêu cầu mật khẩu trang web tại mỗi lần tải lại, mặc dù nó được lưu trong trình duyệt.

Chỉ trên Ipad. Không bắt nguồn từ, tất cả các bản gốc ios. Đã thử nghiệm với Chrome và Safari trên Ipad, luôn giống nhau.

Nếu không có yếu tố âm thanh trên trang, nó không yêu cầu mật khẩu.

Điều này không xảy ra trên máy tính bảng Android hoặc Firefox trong Windows.

Tôi có thể lập trình để ngăn chặn Ipad yêu cầu mật khẩu bằng cách nào?

Tôi sử dụng code sau đây từ trang web này.

<!DOCTYPE HTML> 
<html> 
<head> 
<title>Audio</title> 
</head> 
<body> 

<script> 
function play(){ 
var audio = document.getElementById("audio"); 
audio.play(); 
} 
</script> 

<input type="button" value="PLAY" onclick="play()"> 
<audio id="audio" src="./207.wav"></audio> 
</body> 
</html> 

Các .htaccess:

AuthType Basic 
AuthName name123 
AuthUserFile /somepath/.htpasswd 
require valid-user 
SetEnv no-gzip 
ExpiresActive On 
ExpiresDefault "access plus 1 seconds" 
ExpiresByType text/html "access plus 1 seconds" 
AddDefaultCharset UTF-8 
+0

Tôi đoán bạn cần cung cấp tệp .htaccess cho sự cố chụp ảnh khác? – cytsunny

+0

Tất nhiên, cảm ơn. – Roman

Trả lời

3

Nó là một very old problem. Trình duyệt Safari vô hiệu hóa việc gửi thông số xác thực khi thực hiện một số thứ tự tự động - redirect with 301-302 http codes hoặc tải tệp phương tiện. Có vẻ như đây là sự cố về độ nghiêm trọng - Safari không cho phép truy cập vào tệp, được tải tự động.

Hãy kiểm tra xem nó với các bản ghi máy chủ (Tôi đã thêm một hình ảnh để trang):

GET /t/i.jpg HTTP/1.0" 200 hình ảnh được nạp tuyệt vời.

GET /t/207.wav HTTP/1.0" 401 âm thanh không được tải, lời nhắc được hiển thị.

Vì vậy, đó là tệp âm thanh bắt buộc hiển thị lời nhắc xác thực. Có một số workaround, nhưng không đủ an toàn.

UPD. Mã sau đây hiển thị 200 phản hồi cho lần truy cập đầu tiên (img thẻ) tới 207.wav và 401 cho thẻ thứ hai (thẻ audio).

<img src="./207.wav" width=200><br> 
<audio id="audio" src="./207.wav"></audio> 

217.118.81.250 - ivan [11/Feb/2017:20:32:13 +0300] "GET /t/207.wav HTTP/1.0" 200 ... Safari/602.1" 
217.118.81.250 - - [11/Feb/2017:20:32:15 +0300] "GET /t/207.wav HTTP/1.0" 401 ... Safari/602.1" 
+0

Ý bạn là ios nói chung? Vì sự cố này cũng xảy ra với Chrome trên ios. – Roman

+1

Nếu bạn nhìn vào 'Tác nhân người dùng', bạn sẽ thấy một cái gì đó như' AppleWebKit/602.1.50 blabla Safari/602.1' * ngay cả khi đó là trình duyệt Chrome hoặc Opera *. Tôi không biết về kiến ​​trúc nội bộ của các trình duyệt trong iO, nhưng có vẻ như họ sử dụng cùng một công cụ 'AppleWebKit' như Safari. –

+2

Apple không cho phép bất kỳ ai tạo ở đó Chế độ xem Trình duyệt riêng, bạn phải sử dụng trình duyệt được nhúng của Safari trong ứng dụng để Chrome, Opera, Firefox đều phải sử dụng Embedded Safari trong iOS –

Các vấn đề liên quan