Symfony3:在加载登录表单之前添加额外的安全性

时间:2017-09-07 22:29:08

标签: javascript php symfony twig

我一直在使用symfony 3创建Web应用程序,并且我已经被要求添加额外的安全层。我需要在加载登录页面之前检查密钥(或令牌)。

我一直在阅读文档,但多数仅适用于登录页面。密钥(或令牌)由自定义背景应用程序提供,当用户尝试加载登录页面时,应用程序通过javascript传递密钥。

所以,我正在寻找一种方法来首先查找密钥,将其与存储在我的数据库中的密钥(可能是security.yml)进行比较。如果密钥匹配,则加载登录页面(此后不再需要密钥)。

有办法做到这一点吗?

修改

可选地,可能是有一种方法来获取密钥(通过javascript传递),然后不是连接到数据库,而是比较Twig中的密钥。那么,使用Twig获取密钥?

2 个答案:

答案 0 :(得分:1)

考虑像这样的安全层,用户有像yubikey这样的硬件令牌。 https://www.yubico.com/start/

然后你安装像这样的包 https://github.com/pmdevelopment/yubikey-otp-bundle 并且您可以创建基于2FA硬件的安全层(您为youbikay auth提供服务 - 您可以随时根据需要对用户进行身份验证。

答案 1 :(得分:0)

如果我理解你的规格,你可以:

  1. 在没有登录表格的情况下加载页面
  2. 执行将令牌/密钥发送到服务器的AJAX请求
  3. 如果密钥有效,则返回带有隐藏输入字段的登录表单的HTML,该字段包含令牌的值
  4. 处理提交的表单时验证令牌
  5. 由于4通常是自动完成的,因此您必须通过监听器挂钩,或者只需将登录表单提交给控制器并“手动”登录用户。