如何掩盖我用于运行网站的内容?


72

通过查看首页的源代码,我能做些什么来防止某些人知道我的网站正在使用Drupal?我指的是使用软件检测站点的人,该软件可以检测用于运行网站的软件,从而能够利用任何已知的弱点对其进行攻击。

如果无法完全隐藏该站点正在使用Drupal的事实,那么是否至少有可能使它们混淆(例如,通过使用URL之类的节点页面来别名http://example.com/servlets/<node-id>.jsp)?


76
您不想隐藏Drupal。Drupal很棒。
Damien Tournoud 2011年

4
如何从根目录中删除CHANGELOG.txt文件开始!不,但是很认真-听起来对我来说完全是浪费时间。保持最新的安全更新,无需掩盖它是Drupal的事实。白宫是否掩盖了他们正在使用Drupal的事实?不,他们在屋顶上大喊大叫:)
汤姆·柯克帕特里克

10
在这种情况下,通过隐蔽性实现的安全性无法提供更多的安全性。
布莱恩·卡斯勒

3
您可能想读Cacking Drupal:一滴水,这是确保Drupal网站安全的绝妙论据
Mawg 2011年

2
如果您不认为安全用例加起来,那么可以选择一种方法:商业机密性。企业可能不希望其竞争对手能够轻松地弄清其网站的基础。或者,代理商或咨询公司可能希望使竞争对手了解其当前使用的工具范围。
user568458

Answers:


53

这是一个古老且已经回答的问题,但是我最近做出了一些努力来写出您需要更改的所有内容的描述:

  • 删除Drupal 7的meta生成器
  • 删除诸如CHANGELOG.txt之类的讲述文字
  • 检查Expires标头
  • HTTP 200/404/403状态代码的步行目录
  • 查找默认短信-调整所有面向用户的短信
  • 查看HTML-核心和模块中的默认html是明显的迹象

基本上:从技术上来说,可以隐藏您的网站运行Drupal的事实,但是您会花很多时间在网站上,这是不值得的。相反,您应该专注于使其安全和安全的操作(例如,快速部署更新,监视日志等的能力)。


您忘记Drupal了需要重命名的JavaScript对象。
Mołot

@Molot好点。那可能吗?关于如何做到这一点的任何指针?我的观点是,这样做是不值得的,因此,只有在进一步做到这一点的情况下,添加更多有关如何做的建议才有用。我希望您所做的事情真的很难:)
令人讨厌的

好吧,我在Drupal目录上用mass regex replace对其进行了测试,并且可以正常工作...但是我不认为这真的很好。当然,每个模块更新都会自动完成。
Mołot

正确。这不值得您花费时间。专注于更重要的事情:)
令人讨厌的

101

您无法完全隐藏它。要做到这一点,大多数情况都需要使用hacking内核。最能说明问题的Drupal是可以从首页或任何该页面读取的JavaScript变量。

如果您想通过隐藏它是Drupal站点来提高站点安全性,则比起试图隐藏该站点是Drupal的事实,您最好将精力花在代码审查上。


7
同意 另一个致命的遗赠是CSS / JS / image路径的结构。
Fuzzy76 2011年

2
您还可以访问/node/1并查看出现的内容或检查HTTP标头
保罗·琼斯

39
如果您试图通过隐蔽性来安全地隐藏网站,那只会浪费时间。
戴夫·里德

6
同意以上所有条件。此外,对于进行CMS比较的人来说,要查看有多少很棒的网站正在运行Drupal,将变得更加困难;-)
geerlingguy 2011年

与geerlingguy所说的有关的是我们在这里进行的讨论:groups.drupal.org/node/113024#comments
coderintherye 2011年

42

太容易了,基安!

  • 使用反向代理或自定义您的http守护程序来过滤烦人的Drupal http标头
  • 拒绝http访问任何Drupal默认文件夹
  • 使用PHP输出缓冲重写和隐藏HTML源,删除不必要的数据
  • 使用url别名或custom_url_rewrite_in / outbound使您的URL混乱
  • 更改默认的404错误,删除/更改update.php
  • 如果有人发现,请进行其他更改

最后但并非最不重要的一点是,请确保您的网站是如此简单,以至于正常行为不需要JS或CSS(不要使用Views或Ctools ...),不支持用户身份验证等,这意味着您的网站应该与静态html网站一样简单。

好的,所有这些使人们相信您的站点没有运行Drupal。无论如何,默默无闻的安全性是没有用的。


@jcisio“无论如何,默默无闻的安全性是没有用的。”,您应该在注释:P之上添加此内容。
arpitr 2013年

@arpitr其他所有人都这样做,所以我认为我没有必要;)
jcisio 2013年

34

有一篇正式的文章和有关讨论。

你不能 不要尝试

  • 自动化攻击(到目前为止是最常见的攻击)甚至在尝试利用服务器之前都不会检查服务器
    检查任何备受关注的站点的日志都会显示成千上万个对... 的无用请求 /AspBB/db/betaboard.mdb _private/cmd.asp /scripts/../../winnt/system32/cmd.exe /wp-login/ /administrator/components/com_wmtgallery/admin.wmtgal/cgi-bin/ip.cgi以及在任何不相关的系统上进行历史利用的任何尝试。
    即使您的OS或CMS中不存在这些漏洞,也会对漏洞进行攻击。无论您采取什么措施来误识别您的网站,业余黑客都将忽略它们。
  • 无论您认为可以隐藏什么,对于任何系统都有其他线索
    仅仅删除所有包含“ drupal”的字符串并不会将您的网站伪装成任何合理的窥探者。可以使用多种方法来猜测为页面提供服务的内容,甚至可以通过专门的服务来判断该网站是否在运行Drupal。识别并认为构成威胁的关键字只是 实际指标的一小部分。
    要求index.php /?q = user。然后尝试禁用该响应而不会破坏您的网站。
  • 默默无闻的安全不是安全。当您仅将漏洞隐藏在烟雾幕后面时,它会给人以“安全”的错误印象,任何冒充真正威胁的攻击者都可以看穿这些漏洞。
  • 尽管并不是完全不可能将代码黑客到足以 隐藏HTML源代码中大部分 Drupal痕迹的地步,但是(毕竟是开放源代码)这样​​做所需的步骤必然会严重破坏内核,以至于您被黑客攻击的代码分支会与您无法修补真实安全更新不兼容,并且确实会对安全团队确定的任何未来实际威胁开放。这是通往系统漏洞的真实途径。
  • 大多数重要或有用的模块都有自己的代码“签名”,如果不进行大量重写,很难隐藏它们。如果您使用的是“视图”,“ cck”,“ ad”,“ imagecache”,“ jquery”,css聚合,贡献主题或网站上有用的任何内容- 有人可以告诉您。完全隐藏起来通常至少需要完全转换主题功能。即使那样,迷惑也 可能行不通
  • 要删除许多高级功能的标识,例如即使轻松安装了可能使用Drupal库工作的Google Analytics(分析),您都必须完全放弃这些功能,或者以不利用Drupal基础架构的方式重写它们。有时这是可能的,但在所有情况下都会适得其反。

您可能也有兴趣阅读保护网站安全

记住永不破解核心


尽管我同意这一点,但我认为即使只是作为第一道防线,删除引用PHP和Drupal的标头也是一件好事,并且不允许访问任何非索引php脚本。不,当然,人们总是会找到一种方法来找出您正在运行Drupal,并认为您可以隐藏它是愚蠢的。但是,对于最不了解的黑客而言,让生活变得更加艰难没有任何害处。
马特·弗莱彻

1

隐藏您的网站运行Drupal没有任何意义。看开发网站是错误的方法。您应该关注的是安全性。确保执行所有证券措施,一切都会好起来的。世界上没有任何一个原因可以隐藏您正在使用某些cms或其他软件。借助Wappalyzer之类的FF插件,您可以立即判断一个站点是否使用Drupal,因此问题很棘手。


1

您可能要做的另一件事是还使用文件别名模块来更改默认文件结构。

文件中的别名模块允许您使用令牌定制别名为您上传的文件,使您能够保持组织按通常同时提供清洁寻找路径(即没有更多的/网站/默认/文件/)文件系统的能力。


1
和?这只修复了过程的一小部分,甚至可能不是最重要的部分。
greggles

1
我不想再重复上述人员的正确答案。我只是增加了一个提示。是的,这个提示非常重要,因为到目前为止,这是最困难的事情,而且了解网站的唯一方法通常是drupal,因为网站管理员通常会按照通常的步骤进行操作。是的,很容易理解这仅仅是一个drupal站点,正是由于这种文件结构/文件夹组织。
约翰

1

我同意其他人的看法,即您无法完全隐藏它。如果查看HTML源代码,您会发现很多时候CSS和JavaScript文件都没有被聚合。应该启用CSS和JavaScript聚合。


0

在过去,我将字体替换为像Lucida Sans这样的典型Ruby项目字体,也像所有时髦的孩子一样增加了输入大小。

另一个赠品是自动完成字段的“更麻烦”图形。当您增加输入大小时,它也不起作用。这是您可以偷的东西:http : //beta.seattlebedandbreakfast.com/misc/throbber.gif

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.