【问题标题】:How can I block all mobile phones from accessing my website如何阻止所有手机访问我的网站
【发布时间】:2013-04-10 17:43:56
【问题描述】:

我正在 IIS 7.5 上构建一个 ASP.Net/C# 网站,我想阻止所有手机访问该网站。

如何阻止/拒绝从所有类型的手机访问本网站(使用 Windows 身份验证)?我正在构建一个内部应用程序,我只希望带有 IE 的桌面可以访问。这比什么都更需要安全。

理想情况下,我想在任何 Windows 质询/响应发生之前先检查用户是否通过手机(或仅通过批准的浏览器)访问此网站。

我一直在向 Google 寻求有关这方面的指示(没有运气)以及查看 URL 重写选项。由于我对 Web 编程的这方面比较陌生,所以我对从哪里开始寻找,或者我什至在寻找正确的地方有点茫然。我不确定我应该只允许一个批准的浏览器通过还是阻止所有手机。

【问题讨论】:

  • 我应该注意我对网络编程的这方面有点陌生,所以我可能错过了一些明显的东西,所以请提前原谅我。我一直在谷歌上搜索有关如何通过向我的 aspx 页面添加一些内容甚至使用 URL 重写来执行此操作的一些指针/线索。
  • 您有什么理由要阻止移动浏览器?这听起来是个坏主意,它甚至可能适得其反,让移动浏览器伪装成桌面,就像 IE 伪装成 Mozilla,而 KHTML 声称它“像壁虎”。
  • 我正在创建一个只希望桌面访问的内部应用程序。这更像是一种安全需求。
  • 只允许“批准”的浏览器而不是阻止所有手机会更容易吗?

标签: c# asp.net iis-7 iis-7.5


【解决方案1】:

你只希望它检查 HTTP 请求上的 User-Agent 标头属性,并拒绝那些来自手机的 User-Agent 内容。

以下是移动设备的用户代理列表: http://www.zytrax.com/tech/web/mobile_ids.html

您必须为此使用 HttpResquest.UserAgent 属性: http://msdn.microsoft.com/en-us/library/system.web.httprequest.useragent.aspx

祝你好运。

【讨论】:

  • 选择您允许的用户代理可能是一个更好的策略,因为相比之下,移动端在不断变化,但浏览器是相当静态的
  • @Crake 除非它回火到然而更多卷积用户代理的存在。还记得“Mozilla/5.0 ... (KHTML, like Gecko) Chrome/26.0.1410.43 Safari/537.31”吗?它实际上是哪个浏览器?提示:不是 Mozilla 5.0
  • 我不希望看到移动浏览器假装它们是兼容 Mozilla 5 的桌面浏览器,并且它们的渲染核心类似于 Gecko。这需要死。基于用户代理的阻塞需要消亡。
【解决方案2】:

您可能必须使用 IIS 模块(如 URL Rewrite v2)并执行以下操作:http://forums.iis.net/t/1169853.aspx

查看请求阻止功能。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-04-03
    • 1970-01-01
    • 1970-01-01
    • 2013-06-10
    • 1970-01-01
    • 2016-11-27
    • 2023-03-12
    • 1970-01-01
    相关资源
    最近更新 更多