关于iOS14的更新主要是隐私方面的更新,原生app方面关于隐私(定位、相册等)的文章已经很多了,本文写一个我发现的关于web隐私方面的问题
开始本文之前建议先了解一下data URI scheme
由于业务需要app项目里有依赖于 <meta>
标签进行url=data:text/html
这种方式进行页面重定向的逻辑
<!DOCTYPE html>
<html>
<head>
<meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\"><meta http-equiv=\"REFRESH\" content=\"0;url=data:text/html;charset=UTF-8,$(ContentHtmlStart)$(ContentHtmlEnd)\">
</head>
</html>
在iOS14系统中发现浏览器禁用了<meta>
标签这种base64形式的redirect,为了绕过这个问题,测试了使用js代码进行重定向
<script type ='text/javascript'>window.location.replace('data:text/html,<html><body><p><b>Hello, world!</b></p></body></html>')</script>
测试结果也失败了(在iOS 12.2测试正常),根据我的测试结果,基本确定iOS14禁用了代码层面的data URI scheme
重定向。
值得一提的是在浏览器地址栏直接输入:
data:text/html,<html><body><p><b>Hello, world!</b></p></body></html>
还是可以跳转的。
文中如有错误还请指教
参考链接:
Data URI详细介绍
Safari redirect to base64 encoded html fails on iOS 14