2017-01-02 11 views
5

Я использую .htaccess для защиты веб-сайта с помощью пароля..htaccess Защищенный паролем веб-сайт требует пароля при каждой перезагрузке страницы на Ipad

Если я использую аудиоэлементы html5 на этом веб-сайте, Ipad требует пароль веб-сайта при каждой перезагрузке, хотя он сохраняется в браузере.

Только на Ipad. Не укоренились, все оригинальные ios. Протестировано с помощью Chrome и Safari на Ipad, всегда одинаково.

Если на странице нет аудио-элементов, для этого не требуется пароль.

Это не происходит на планшете Android или Firefox в Windows.

Что я могу запрограммировать, чтобы Ipad не запрашивал пароль?

С этого сайта я пользуюсь следующим code.

<!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> 

.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

Думаю, вам нужно предоставить файл .htaccess для других проблем? – cytsunny

+0

Конечно, спасибо. – Roman

ответ

3

Это very old problem. Браузер Safari отключает отправку параметров auth при выполнении чего-то автоматически - redirect with 301-302 http codes или загрузке медиафайла. Похоже, это проблема безопасности - Safari не разрешает доступ к файлу, автоматически загружается .

Давайте проверим его логи сервера (я добавил изображение на странице):

GET /t/i.jpg HTTP/1.0" 200 изображения загружаются большой.

GET /t/207.wav HTTP/1.0" 401 аудио не загружается, отображается подсказка.

Таким образом, это звуковой файл, который заставляет показывать подсказку auth. Существует workaround, но он недостаточно безопасен.

UPD. Следующий код показывает 200-ответ для первого доступа (img тег) до 207.wav и 401 для второго (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

Вы имеете в виду иос в целом? Потому что эта проблема также возникает с Chrome на ios. – Roman

+1

Если вы посмотрите на «User-agent», вы увидите что-то вроде «AppleWebKit/602.1.50 blabla Safari/602.1' *, даже если это браузер Chrome или Opera *. Я не осведомлен о внутренней архитектуре браузеров в iOs, но похоже, что они используют тот же движок «AppleWebKit», что и Safari. –

+2

Apple не позволяет никому создавать собственный просмотр браузера, вы должны использовать встроенный браузер Safari в приложениях, поэтому Chrome, Opera, Firefox все должны использовать встроенное Safari в iOS –