如何在测试和开发过程中保护symfony项目密码

时间:2016-11-29 06:11:07

标签: php symfony

我开发了一个symfony2项目。我想在测试和开发过程中使这个项目密码受到保护。换句话说,我想让项目密码受到保护,直到它被完全测试,并且它已经发布。有办法做到这一点吗?请帮忙。提前谢谢。

3 个答案:

答案 0 :(得分:2)

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

通过在要密码保护的目录中上传两个名为.htaccess和.htpasswd的文件来工作。 .htaccess文件应包含:

AuthType Basic
AuthName "Password Protected Area"
AuthUserFile /path/to/.htpasswd
Require valid-user

您只需要使用.htpasswd的完整路径更改“/path/to/.htpasswd”。

.htpasswd文件应包含:

test:dGRkPurkuWmW2

上述代码将允许用户“test”使用密码“test”访问密码保护区域。文本“dGRkPurkuWmW2”是密码的加密版本。您将需要使用htpasswd生成器来创建另一个密码。 .htpasswd文件中的每一行都包含用户名和密码组合,因此您可以随意添加任意数量的组合。

密码生成器:http://www.htaccesstools.com/htpasswd-generator/

来源:http://www.htaccesstools.com/articles/password-protection/

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

project/
 -web/

答案 1 :(得分:2)

您可以轻松地为每个环境配置安全组件。只需打开相应的配置文件,例如config_dev.yml,然后添加/覆盖相应的安全配置,例如:

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

答案 2 :(得分:1)

我通常设置开发环境的方法是使用“私有”的子域。私有我的意思是没有指向它的DNS记录。我在hosts文件中添加了一行,以便我的计算机可以访问它。如果我需要将它暴露给外部api(例如支付网关响应),那么我创建DNS记录,但我配置防火墙只接受某些IP地址。

请注意,如果您使用任何类型的身份验证,这些服务(PayPal,信用卡支付网关......)将无法连接到您的网站,因此您将无法对其进行测试。

相关问题