Easter Eggs(复活节彩蛋)外行人估计不了解这是神木玩意,彩蛋的网络解释是:用于电脑、电子游戏、电脑游戏、影碟或其他互动多媒体之中的隐藏功能或信息。PHP包含一个安全漏洞,可能导致未经授权的信息披露,如果你正在运行PHP,就有可能会被人发现PHP版本和其他敏感信息。我觉得有必要解决这个彩蛋问题来确保你网站的安全性。
PHP彩蛋是如何运作的
只要运行PHP的服务器上,访问任何网页都可以在域名后添加以下字符串来查看信息:
?=PHPB8B5F2A0-3C92-11d3-A3A9-4C7B08C10000 (PHP信息列表) ?=PHPE9568F34-D428-11d2-A769-00AA001ACF42 (PHP的LOGO) ?=PHPE9568F35-D428-11d2-A769-00AA001ACF42 (Zend LOGO) ?=PHPE9568F36-D428-11d2-A769-00AA001ACF42 (PHP LOGO 蓝色大象)
当然,如果漏洞存在才可以通过以上来查看到信息,现在一般网站都已经屏蔽了。但如果存在说明其expose_php是启用状态,PHP将生成页面发送出PHP版本信息,这样一些”坏人”就知道了你的版本号来利用已知的版本漏洞来进行攻击。
如何阻止彩蛋
一般情况下如果你的服务器支持编辑php.ini文件,我们可以把php.ini里的expose_php设为Off就可以屏蔽了。如果你不能操作php.ini文件,也可以通过设置.htaccess来进行屏蔽。
RewriteCond %{QUERY_STRING} \=PHP[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12} [NC] RewriteRule .* - [F]
Really appreciate it Jeff Starr‘s post expose_php, Easter Eggs, and .htaccess.
示例:
http://wowo.haotui.com/space.php?=PHPB8B5F2A0-3C92-11d3-A3A9-4C7B08C10000 http://en.wikipedia.org/w/index.php?=PHPE9568F34-D428-11d2-A769-00AA001ACF42 http://www.zend.com/en/index.php?=PHPE9568F35-D428-11d2-A769-00AA001ACF42
TL;dr:如何在没有随机文本的情况下将无符号32位整数转换为chars/uint8_t 好的,我愿意为此牺牲几个声誉点。我需要快速将一个4字节的无符号整数转换为数组字节,以便读取/写入/操作我自己结构的二进制文件。 这样我就可以读取一个结构,然后将其用作对象,而不是读取它,为每个更改写入它。 但是当我尝试实现一个函数时,我得到了一个泄漏。指针只是不断在函数范围之外添加值。 主要: 和输出: 在我
我有一个JavaFX应用程序,当按下X按钮时,它可以最大限度地减少对托盘的访问。我一直在通过VisualVM监控应用程序的内存趋势。 奇怪的是,当应用程序打开或最小化到任务栏时,内存总是会被重新分配到最初使用的内存。但是,当它最小化到托盘()时,
我在IOUtils上使用了一个很好的函数,名为“closequity”,它可以关闭流,不管流中有什么。 例如: 不知何故,当我在最后一个块中调用它时,它也隐藏了Eclipse上的警告,即“资源泄漏:‘输入’在此位置未关闭”。 这意味着在上述代码中,没有此类警告。 我不明白它是如何隐藏对自身“外部世界”的警告的。 我试图通过复制这个库的代码来检查它(这里的例子),但是当我在新类上使用它时,警告会出现
本文向大家介绍Nginx隐藏服务器端各类信息的方法,包括了Nginx隐藏服务器端各类信息的方法的使用技巧和注意事项,需要的朋友参考一下 有时我们不希望有人可以通过一些工具来返回我们服务器的信息,下面我来介绍在nginx中隐藏nginx响应头,修改nginx返回头信息,隐藏php版本号,隐藏服务器信息,同学可参考。 首先隐藏nginx版本信息,只需编辑 nginx.conf 文件 添加一行 响应头隐
问题内容: 封装和信息隐藏之间到底有什么区别? 好吧,我知道将字段设为私有,然后将字段的setter和getter设为封装。但是封装只是这个意思吗? 假设我有一个如下所述的课程。 现在,类IsThisEncapsulation是封装的示例吗? 现在将上述类中的“年龄”字段设为私有可以实现信息隐藏吗? 您能给我清楚的例子,以帮助我清楚地区分这些概念吗? 问题答案: 好吧,我知道将字段设为私有,然后将
本文向大家介绍C++中的重载、覆盖、隐藏介绍,包括了C++中的重载、覆盖、隐藏介绍的使用技巧和注意事项,需要的朋友参考一下 前几天面试时被问及C++中的覆盖、隐藏,概念基本答不上来,只答了怎么用指针实现多态,也还有遗漏。最终不欢而散。回来后在网上查找学习了一番,做了这个总结。其中部分文字借用了别人的博客,望不要见怪。 •概念 一、重载(overload) 指函数名相同,但是它的参数表列个数或顺序,