.htaccess 受密码保护的网站在 Ipad 上重新加载每个页面时都需要密码
.htaccess Password protected website requires Password at every page reload on Ipad
我使用 .htaccess 来保护带有密码的网站。
如果我在该网站上使用 html5 音频元素,我的 Ipad 每次重新加载时都需要网站密码,尽管它已保存在浏览器中。
仅限 Ipad。未root,全部原创ios。
在 Ipad 上使用 Chrome 和 Safari 进行测试,总是一样。
如果页面上没有音频元素,则不需要密码。
在 Windows 的 Android 平板电脑或 Firefox 上不会发生这种情况。
我可以编写什么程序来防止 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
它是一个 very old problem. Safari browser disables sending auth params when doing something automatically - redirect with 301-302 http codes 或正在加载的媒体文件。看起来这是一个安全问题 - Safari 不允许访问 自动.
加载的文件
让我们用服务器日志检查一下(我在页面上添加了一张图片):
GET /t/i.jpg HTTP/1.0" 200
图片加载得很好。
GET /t/207.wav HTTP/1.0" 401
音频未加载,显示提示。
所以它是强制显示身份验证提示的音频文件。有 workaround,但不够安全。
更新。以下代码显示第一次访问(img
标记)对 207.wav
的 200 响应和第二次访问(audio
标记)的 401 响应。
<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"
我使用 .htaccess 来保护带有密码的网站。
如果我在该网站上使用 html5 音频元素,我的 Ipad 每次重新加载时都需要网站密码,尽管它已保存在浏览器中。
仅限 Ipad。未root,全部原创ios。 在 Ipad 上使用 Chrome 和 Safari 进行测试,总是一样。
如果页面上没有音频元素,则不需要密码。
在 Windows 的 Android 平板电脑或 Firefox 上不会发生这种情况。
我可以编写什么程序来防止 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
它是一个 very old problem. Safari browser disables sending auth params when doing something automatically - redirect with 301-302 http codes 或正在加载的媒体文件。看起来这是一个安全问题 - Safari 不允许访问 自动.
加载的文件让我们用服务器日志检查一下(我在页面上添加了一张图片):
GET /t/i.jpg HTTP/1.0" 200
图片加载得很好。
GET /t/207.wav HTTP/1.0" 401
音频未加载,显示提示。
所以它是强制显示身份验证提示的音频文件。有 workaround,但不够安全。
更新。以下代码显示第一次访问(img
标记)对 207.wav
的 200 响应和第二次访问(audio
标记)的 401 响应。
<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"