如果你打开这个选项,它的建议也设置会话cookie是安全的,和所有其他cookie发送。你可以做前使用:

1 2 3 4
#配置/包/ framework.yaml框架:会话:cookie_secure:真正的

保持一些url从force-redirected SSL可以定义允许的正则表达式列表:

1 2 3 4 5 6
#配置/包/ nelmio_security.yamlnelmio_security:forced_ssl:启用:真正的allow_list:- - - - - -^ /不安全的

限制force-redirects一些主机名只有你能定义主机名作为正则表达式的列表:

1 2 3 4 5 6
#配置/包/ nelmio_security.yamlnelmio_security:forced_ssl:启用:真正的主机:- - - - - -^ \ .example \ .org美元

改变重定向的方式做是为了永久重定向为例,你可以设置:

1 2 3 4 5
#配置/包/ nelmio_security.yamlnelmio_security:forced_ssl:启用:真正的redirect_status_code:301年

如果你想进一步推动它,您可以启用HTTP严格的交通安全(hst)。这基本上是发送一个头告诉浏览器访问你的网站必须使用SSL。如果用户输入一个http://URL,浏览器会把它转换成https://自动,并将之前做任何要求,防止中间人攻击。

浏览器将缓存只要指定的值hsts_max_age(以秒为单位),如果你打开hsts_subdomains选项,这种行为将被应用到所有子域。

1 2 3 4 5
#配置/包/ nelmio_security.yamlnelmio_security:forced_ssl:hsts_max_age:2592000# 30天hsts_subdomains:真正的

你也可以告诉浏览器将你的网站添加到已知hst的网站列表,通过启用hsts_preload。一旦你的网站出现在Chrome和Firefox预加载列表,那么新用户来你的网站已经被重定向到HTTPS url。

1 2 3 4 5
#配置/包/ nelmio_security.yamlnelmio_security:forced_ssl:hsts_max_age:31536000# 1年hsts_preload:真正的

请注意

目前至少1年的值所需的铬还需要通过火狐hsts_subdomains还必须支持预加载工作。

你可以加快过程通过提交你的网站hst预加载列表

一个小警告:虽然hst的安全,这意味着如果浏览器不能建立SSL证书是有效的,它不会允许用户查询你的网站。这就意味着你应该小心和更新你的证书。

提示

检查我可以用hst吗?完整的信息支持的浏览器。

如果你使用记得我功能,你也将一个标记为安全:

1 2 3 4 5 6
#配置/包/ security.yaml安全:防火墙:somename:remember_me:安全:真正的

如果你这样做,你现在有两个问题。首先,不安全的网页将无法使用会话了,可以不方便。第二,如果一个登录用户可以非http页面的站点,它被视为匿名自他浏览器不会发送会话cookie。为了解决这个问题,这包设置一个新的不安全cookie (flexible_ssl.cookie_name,默认为身份验证)用户登录一次。这样,如果不安全地访问任何页面登录用户,他被重定向到安全的版本的页面,然后和他的会话可见到框架。

使flexible_sslNelmioSecurityBundle选项将确保登录用户总是看到安全页面,并将确保他们的会话cookie是安全的,但匿名用户仍然能够有一个安全会议,如果您需要使用它来存储非重要数据如语言设置什么的。记得我的饼干也将总是安全的,即使你离开设置为false。

1 2 3 4 5
#配置/包/ nelmio_security.yamlnelmio_security:flexible_ssl:cookie_name:身份验证unsecured_logout:

你必须配置一件事在你的安全配置:每个防火墙应该注销侦听器添加,这样特别身份验证饼干可以清除当用户注销。你可以这样做:

1 2 3 4 5 6 7 8
#配置/包/ security.yaml安全:防火墙:somename:#……注销:处理程序:- - - - - -nelmio_security.flexible_ssl_listener

在注销,如果你想让用户被重定向到一个未加密的页面集unsecured_logout为true。