我有一个仅支持Chrome,Firefox和Safari的网络应用。有很多方法可以阻止浏览器。我想看看什么是确保只有这些浏览器被授予访问权限的最有效方法。
由于
答案 0 :(得分:4)
如果您知道IE中没有的特定功能,那么检测功能强大的浏览器的最佳方法是进行功能测试,以查看这些功能是否可用。这种方法不是可以欺骗的,如果在将来的某个时候,IE开始支持这些功能,你的应用程序就会开始在那里工作。
由于您正在使用jQuery,因此您可以查看jQuery.support
以查看它已经向您展示的所有功能检测属性。
如果您不想使用功能检测方式并且想要检测浏览器系列,则可以使用任何一种浏览器检测方法。最常见的是只查看用户代理字符串。您应该意识到用户代理字符串在许多环境中是可设置的或可欺骗的,因此它不是浏览器引擎的结论性指示器。对于普通用户来说,它可能是准确的,但可以搞砸。
这是微软在检测IE和各种版本的IE时的一段代码:http://msdn.microsoft.com/en-us/library/ms537509(v=vs.85).aspx。
答案 1 :(得分:0)
解析UA字符串并拒绝通过apache,js,php等访问。 但是你无法确保标记为“firefox”的内容实际上是firefox - UA标题可能包含你喜欢的任何内容。
另一种方法是进行像常见js框架中使用的功能测试。但请记住,如果您的客户端的js被禁用,这将无效。
答案 2 :(得分:0)
这通常涉及检查正在使用您的Web应用程序的访问者的用户代理,并阻止访问您不想使用的用户代理。您可以在JavaScript中检查用户代理(仅当用户启用了JavaScript时才能使用)。请查看此页面,了解可以使用JavaScript检查的用户代理属性的信息:navigator.userAgent Property。或者你可以用PHP之类的东西检查这个服务器端。有关通过PHP访问用户的用户代理的更多信息,请查看this page。您将要检查用户代理是否包含字符串“MSIE”或相反(例如,检查它是否包含Gecko(对于使用firefox呈现引擎的浏览器)或WebKit for Chrome和Safari。
答案 3 :(得分:0)
我还建议使用modernizr来检测浏览器功能。
答案 4 :(得分:0)
我创建了一个页面:allowed.php
<?php
$browser = 'Crap';
if( preg_match("/firefox/i",getenv("HTTP_USER_AGENT")) && preg_match("/firefox/i",$_SERVER['HTTP_USER_AGENT']) ){
$browser = 'Firefox';
}
if( preg_match("/chrome/i",getenv("HTTP_USER_AGENT")) && preg_match("/chrome/i",$_SERVER['HTTP_USER_AGENT']) ){
$browser = 'Chrome';
}
switch( $browser ){
case 'Firefox':
// allowed
break;
case 'Chrome':
// allowed
break;
default:
Header("Location: rejects.html");
exit();
}
//
拒绝页面:rejects.html
<!DOCTYPE html>
<html lang="en">
<head><title>Browser Rejects</title>
<meta charset="utf-8"/>
<style type="text/css">
html {
margin:0px; width:100%; height:100%;
}
body {
margin:0px; width:100%; height:100%;
}
.div-center { position:absolute;
margin:10% 20% auto 20%; padding:2%;
border:1px solid #AAA; border-radius:10px;
}
</style>
</head>
<body>
<div class="div-center">
When your Browser(or the Idiots that make it) learn(s) to abide to Standards set by Society(e.g. W3C),<br>
We will then allow your Browser to be used on Our Sites.<br>
<br>
Until then, Please use a Real Web Browser like Firefox or Chrome.<br>
Thank You and have a Great Day !
</div>
</body>
</html>
我将这两者放在特定网站的底部,只需使用include allowed.php,过滤掉垃圾浏览器......
~SpaceCorp Innovative Technologies