【问题标题】:Can using a custom $_SERVER['HTTP_USER_AGENT'] help website security?使用自定义 $_SERVER['HTTP_USER_AGENT'] 可以帮助网站安全吗?
【发布时间】:2014-03-09 04:01:19
【问题描述】:

Agentn 使用自定义 $_SERVER['HTTP_USER_AGENT'] 帮助网站安全?

我正在使用一个浏览器,您可以在其中添加和使用您自己的 $_SERVER['HTTP_USER_AGENT']。我现在已经在我的“安全区域”的每一页上添加了这个脚本。

<? $agent= $_SERVER['HTTP_USER_AGENT'];
$goodbrowser = 'MyCustomBrowser';
if (strstr($agent,$goodbrowser)!= true):?>
<h2 class="bd" style="margin-top:200px">You have No Authorisation<br>to access this area</h2>
exit; endif; ?>

这会有所帮助还是很容易绕过?我会(并且我希望还有很多其他人)会对那里的网络安全专家感兴趣。非常感谢。

【问题讨论】:

  • 优秀的开发者不会信任用户代理
  • 我并没有完全依赖这个,只是给潜在的黑客增加了另一种挫败感。
  • 小屁孩:if ($something != true)if (! $something) 完全一样;这是一个特别奇怪的选择,因为strstr() 总是返回一个字符串,所以你实际上想要检查if ($something == '')。就此而言,既然您有效地使用 User-Agent 作为密码,为什么不简单地检查 if ( $agent != $goodbrowser ) 并且不允许碰巧包含您的密码的随机变化?

标签: php security variables web user-agent


【解决方案1】:

这是一种通过默默无闻的安全形式,这通常不是一件好事,会导致安全漏洞。这是一个很好的规则:

总是假设攻击者知道你知道什么!这意味着,代码的外观,你的数据库结构的外观,你的文件和目录结构的外观,一切

如果您想让人们远离某个区域,请根据真正安全的东西进行限制,例如经过强哈希算法后的良好密码、SSH 密钥或仅限本地访问。

来自客户的任何东西都不可信,只能衡量您可以控制的变量。


如果您已经采取了其他适当的安全措施(如强密码、HTTPS 等),则可以将其添加为额外的障碍。

【讨论】:

  • 我拥有所有这些以及更多。我的客户编辑和更新他们自己的网站,我添加它是为了强制他们在更新时使用我的浏览器,我知道这是安全的,而不是他们自己的浏览器,由于缺乏更新等可能存在安全问题。
  • @user1620028:这是个好主意,但安全是您的工作,而不是他们的工作。你不应该强迫你的用户做任何事情。就像您不信任他们的浏览器一样,他们也可能不信任您的浏览器。
  • 感谢您之前的声音cmets,但此评论毫无意义。好吧,“强制”这个词的选择很糟糕,但是如果您已经建立了一个客户端网站并且您提供了一个具有更高安全性的浏览器,那么您肯定是在做您的工作。但我没有明确表示该浏览器是专门用于网站管理员的唯一目的,而不是一般的网络浏览。
猜你喜欢
  • 2017-01-03
  • 2011-09-21
  • 2014-04-20
  • 1970-01-01
  • 2021-03-12
  • 1970-01-01
  • 2018-04-17
  • 2013-09-27
  • 1970-01-01
相关资源
最近更新 更多