我在twig模板中使用/ bundles / path作为图像, e.g。
<link href="{{ asset('bundles/acmedemo/css/contact.css') }}" rel="stylesheet" />
<img src="{{ asset('bundles/acmedemo/images/image.jpg') }}">
<img src="/bundles/acmedemo/images/image.jpg">
是否有任何安全风险,用户可能会知道我使用symfony fw,利用某些东西,或者用户可能知道我的捆绑名称,谁知道这可能导致什么,或者用户可能能够热链接我知道可以通过服务器设置纠正的文件,但是这样做是否有任何问题,就混淆和安全性而言?
请注意,我正在开发一个基于这个fw的企业站点,并且我必须不披露等等,它不像它的开源包或任何东西。
答案 0 :(得分:7)
好问题。
理论上讲,它不应该。 Symfony 应该足够安全,以便知道您使用Symfony和/或甚至是您正在运行的确切版本,黑客仍然无法伤害您的应用。 (假设您已正确配置了所有内容,包括您的Web服务器等。)
但实际上,您的代码或某些供应商代码中仍可能存在漏洞。您可能确实希望通过隐藏您正在使用的框架来使潜在攻击者更容易一点,这样即使您的应用程序中存在漏洞,攻击者也不会知道您&# 39;重新使用该特定框架而不首先尝试所有可能性。
有关此主题的有趣文章是Hide your Web stack。它基本上提供了以下提示,不仅可以混淆使用Symfony,还可以混淆PHP和Apache(或者您正在使用的任何网络服务器):
app_dev.php
和config.php
,以及创建自定义错误页面。app.php
或将Web服务器配置为在有人试图直接访问app.php
时返回404,因为该文件的名称将表明使用Symfony。 /bundles/etc
非常适合Symfony。例如,在安装资产时使用app/console assets:install path
,将path
替换为自定义位置。X-Powered-By
)。这可以通过将expose_php = off
添加到php.ini。您甚至可能希望更进一步,不仅隐藏应用程序的详细信息,而是将其伪装成其他内容。例如,您可以将PHP伪装成另一种脚本语言,希望攻击者可以尝试使用该语言的某些特定漏洞,并在尝试几次失败后放弃。但是,你应该小心,只有当你确定没有意外的副作用时才这样做。另外,请不要忘记,如果您的实际软件和您将其伪装成遭受相同漏洞的软件,那么您就会回到原来的位置......