2010-09-14 99 views
1

作为一种安全措施,我想隐藏我用我的服务器上的技术堆栈。什么是有效的方法来做到这一点?我想过隐藏后端技术堆栈

1)使用mod_rewrite或重写模块隐藏任何页面的扩展名如.PHP或.ASPX
2)关闭所有的错误报告

1b)中使用mod_rewrite担任目的的误导性的扩展,像掩饰一个PHP页面的aspx
2B)抛出误导性的错误去与1B),使我的PHP页面显示ASP样的错误。

+2

,我认为你的努力会使用你必须创建摆在首位更安全的应用程序的工具可能会更好一些。 – 2010-09-14 02:53:13

回答

1
  1. 不显示准确页面扩展
  2. 不要使用标准的错误页面
  3. 确保Web服务器和应用层(ASP.NET,PHP等)隐藏自己在浏览器标题存在)
  4. 如果你的错误页面做任何事情的动态,假设这个能以某种方式失败,并有一组静态的HTML页面,你可以成为不属于Web服务器默认的
  5. 确保我们所有的技术堆栈被配置为不在任何服务的错误页面上显示堆栈跟踪本地服务器以外的机器。如果由于某种原因,所有的自定义错误都失败了,那么用户可能会看到技术堆栈,但他们不会有一个窗口进入底层代码
0

您可以将伪造的Server:和/或X-Powered-By标头添加到响应中,假装它是由不同的服务器生成的。 (或者,Server: My Unhackable Server

2

这是一个不可能完成的任务。您将不得不修改整个堆栈,在这种情况下,您将创建新的有问题的版本,您现在必须与供应商的版本保持同步。

没有办法做到这一点,没有让你的网站减少安全。

你可以做跛脚的东西移去X供电-通过,或者如果它使用类似ASP或PHP具有已知的一个改变会话生成方案。事实是,它不会阻止任何人谁实际上想要知道你正在运行的。

对于基本的例子(它去深度超过此),某些Web服务器会接受任何头,所以我可以说GET LOLOLOL HTTP/1.1,它仍然可以工作。有些堆栈会保持会话活跃,有些则不会。您还可以看到有哪些功能堆栈上,因为有刚在网络上这么多,有没有办法在地球上的任何栈支持完全相同的一组。

+2

它不一定非常完美。我只是希望它不会在代码中引入太多问题,就可以达到最佳效果。 – Bimmy 2010-09-14 03:12:10