Php 如何在测试和开发期间保护symfony项目密码

Php 如何在测试和开发期间保护symfony项目密码,php,symfony,Php,Symfony,我开发了一个symfony2项目。我想使这个项目在测试和开发期间密码保护。换句话说,我想让项目密码得到保护,直到它被完全测试并发布。有没有办法做到这一点?请帮忙。提前感谢。如果我理解正确,您想要实现的是阻止非授权用户访问您的网站。您可以通过简单的htaccess密码保护来实现这一点 它的工作原理是将两个名为.htaccess和.htpasswd的文件上载到您想要密码保护的目录中。.htaccess文件应包含: AuthType Basic AuthName "Password Protected

我开发了一个symfony2项目。我想使这个项目在测试和开发期间密码保护。换句话说,我想让项目密码得到保护,直到它被完全测试并发布。有没有办法做到这一点?请帮忙。提前感谢。

如果我理解正确,您想要实现的是阻止非授权用户访问您的网站。您可以通过简单的htaccess密码保护来实现这一点

它的工作原理是将两个名为.htaccess和.htpasswd的文件上载到您想要密码保护的目录中。.htaccess文件应包含:

AuthType Basic
AuthName "Password Protected Area"
AuthUserFile /path/to/.htpasswd
Require valid-user
test:dGRkPurkuWmW2
只需将“/path/更改为“.htpasswd”,并将完整路径更改为.htpasswd

.htpasswd文件应包含:

AuthType Basic
AuthName "Password Protected Area"
AuthUserFile /path/to/.htpasswd
Require valid-user
test:dGRkPurkuWmW2
上述代码将允许用户“测试”使用密码“测试”访问密码保护区域。文本“dGRkPurkuWmW2”是密码的加密版本。您需要使用htpasswd生成器创建另一个密码。htpasswd文件中的每一行都包含用户名和密码组合,因此可以随意添加任意多个组合

密码生成器:

资料来源:

对于symfony2项目,应在web目录中创建新的.htaccess文件:

project/
 -web/

我通常会使用一个“私有”的子域来设置开发环境。所谓私有,我的意思是没有指向它的DNS记录。我会在我的主机文件中添加一行,以使我的计算机可以访问它。如果我需要将它暴露给外部API(例如支付网关响应)然后我创建DNS记录,但我将防火墙配置为只接受某些ip地址


请记住,如果您使用任何类型的身份验证,这些类型的服务(贝宝、信用卡支付网关…)将无法连接到您的站点,因此您将无法测试它们。

您可以轻松地为每个环境配置不同的安全组件。只需打开相应的配置文件,例如
config\u dev.yml
并添加/覆盖相应的安全配置,例如:

security:
    providers:
        my_provider:
            memory:
                users:
                    foo: { password: foo, roles: ROLE_USER }
    firewalls:
        your_firewall_name:
            http_basic: ~

你的意思是你不希望人们在网站准备好之前访问你的网站?是的。事实上,它有不同的用户类型和管理员,已经是安全的。但我希望这种安全性处于所有其他安全性的更高级别,甚至是公共区域。你希望身份验证如何工作?LDAP、数据库或通过什么方式?它可以是任何简单的类型。甚至硬编码到sim卡PLE文件或SyfITy.YML在侧SyfOff.Tip:如果你在4小时后发布同样的问题,因为你没有知识来解决这个简单的问题,如果你考虑雇佣一个开发人员来检查你已经开发的项目,也许更好。.给我一点关于完整pat的想法。它在finnalResult中的显示应该是两个文件:.htaccess和.htpasswd位于index.php文件所在的同一目录中。所以.htpasswd的最终路径将是./.htpasswd。我说的对吗?我的根目录中已经有了.htaccess,因为symfony需要它来生成链接。我认为对于symfony项目你需要在/web目录中创建新的.htaccess。然后在同一目录中创建.htpasswd,之后查找路径会很容易。我很确定它可以与symfony以及其他框架一起使用。你确定你有正确的.htpasswd路径吗?你可以在这里阅读更多关于它的信息。是什么让你认为它不起作用?没有DNS记录很难ly可以“保护”任何东西,所以我不建议使用这种方法。我同意你的观点。我的建议集中在拥有一个可用的伪私有开发环境。