隐藏后端技术堆栈

时间:2010-09-14 02:43:44

标签: security obfuscation

作为一项安全措施,我想隐藏我在服务器上使用的技术堆栈。有效的方法是什么?我想过

1)使用mod_rewrite或Rewrite Module隐藏任何页面扩展名,如.php或.aspx
2)关闭所有错误报告

1b)使用mod_rewrite故意提供误导性扩展,例如将php页面伪装为aspx
2b)使用1b)抛出误导性错误,使我的php页面显示类似asp的错误。

3 个答案:

答案 0 :(得分:2)

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

如果不使您的网站更少安全,就没有办法做到这一点。

你可以做一些蹩脚的事情,比如删除X-Powered-By,或者改变会话生成方案,如果它使用像ASP或PHP这样已知的方案。事实上,它不会阻止任何实际想知道你正在运行的人。

对于基本示例(它比更深更深),一些Web服务器将接受任何标头,因此我可以说GET LOLOLOL HTTP/1.1它仍然有效。有些堆栈会使会话保持活动状态,有些则不会。您还可以看到堆栈中有哪些功能,因为Web上有这么多功能,并且任何堆栈都无法支持完全相同的设置。

答案 1 :(得分:1)

  1. 不显示准确的页面扩展名
  2. 请勿使用标准错误页面
  3. 确保Web服务器和应用程序层(ASP.NET,PHP等)隐藏它们在浏览器标题中的存在)
  4. 如果您的错误页面执行任何动态操作,请假设这可能会以某种方式失败,并且您可以提供一组静态html页面,这些页面不是Web服务器的默认页面
  5. 确保我们所有的技术堆栈都配置为不在显示给本地服务器以外的计算机的任何错误页面上显示堆栈跟踪。如果由于某种原因所有自定义错误都失败,那么用户可能会看到技术堆栈,但是他们没有窗口进入底层代码

答案 2 :(得分:0)

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