繁体   English   中英

如何在Symfony2中设置密码长度限制?

How to set password length constraints in Symfony2?

提示:本站收集StackOverFlow近2千万问答,支持中英文搜索,鼠标放在语句上弹窗显示对应的参考中文或英文, 本站还提供   中文繁体   英文版本   中英对照 版本,有任何建议请联系yoyou2525@163.com。

我尝试使用@Assert\\MinLength但是在每种情况下密码足够长时,似乎都在对密码进行编码后进行检查。 如何在编码之前放置约束?

我想不出什么更好的主意,要数与符号的数量strlen结合报名表后,但我不认为这将是一个很好的方式。 而且我不确定即使这样也能正常工作,也不确定何时完成编码。

任何建议将不胜感激! 先感谢您!

2 个回复

问题是您将一个字段用于两个目的:以纯文本和编码形式存储密码。 您需要的是一个用于各种用途的字段:

use Symfony\Component\Validator\Constraints\NotBlank;
use Symfony\Component\Validator\Constraints\MinLength;
use Doctrine\ORM\Mapping\Column;

class User 
{
    /**
     * @NotBlank
     * @MinLength(6)
     *
     * @var string
     */
    private $plainPassword;

    /**
     * @Column
     *
     * @var string
     */
    private $password;
}

只有$password字段会保留在数据库中,并且不会以表格形式显示,因此用户无法对其进行编辑。

另外,您还需要一个Doctrine事件侦听器(或其他一些代码)来检查$plainPassword是否不为空,如果不是,则对其值进行编码并将其放入$password

使用security.encoder_factory服务获取在安全配置中设置的编码器,并使用它对密码进行编码。 另外,检查我的ElnurBlowfishPasswordEncoderBundle

您不应该自己在密码设置器中对密码进行编码。 而不是使用一些编码器(您甚至可以编写自己的编码器),并在验证表单后对密码进行编码。

这是使用编码器的示例:

http://symfony.com/doc/current/book/security.html#encoding-the-user-s-password

2 设置最小密码长度

我正在尝试为登录页面设置最小密码长度; 但是,密码(输入)标签的唯一属性似乎是maxlength。 我知道你可以使用新的模式或min属性,但我需要一些在IE 9中工作的东西。有没有一种简单/替代方法来解决这个问题,还是我必须使用strlen? ...

5 设置游程编码长度的最小限制

这是我当前的代码。 对于那些了解游程长度编码的人来说,它可以使文件变大,因为单个值变为两个。 我试图将最小长度设置为3,以使其实际压缩。 任何有关代码更正的帮助,建议将不胜感激。 ...

6 密码长度与 DOS 攻击

当我指的是密码散列的工作原理时,有一个 owasp 博客说“如果用户可以提供很长的密码,那么存在潜在的拒绝服务漏洞,例如 2013 年在 Django 中发布的那个。” 我无法理解密码长度和 DOS 攻击之间的联系。 据我所知,密码长度与密码破解有很大的关系,因为长密码很难破解。 \\ 但是 ...

7 输入不是选择密码长度

我是编程新手,正在制作密码管理器。 我的问题:-它的作用->当我运行程序并输入密码的长度时,它会生成一个密码,但它始终是 4 位数字,并且密码重复的次数与我输入的数字一样多。-它应该做什么 -> 我输入的数字应该决定密码的长度,而不是它被重复的次数。 ...

9 整数数组AES加密中增加的密码长度

在以下代码中,我采用了整数数组并执行AES加密。 输入是一个大小为16的整数数组。当我对数据进行加密时,我得到的密文byte []大小为64。很明显,一个整数占用4B,因此16 * 4 = 64,即密文长度。 但是,如果我对图像(512 X 512)实施相同的技术,则密码图像的大小可能是原始 ...

10 使用 JavaScript 在 HTML POST 表单中批准密码长度

我正在制作一个具有简单登录/注销和注册功能的超级基本网站。 在 register.php 页面上,用户选择的用户名和密码通过 POST 从注册表中检索并存储在 mySQL 数据库中。 我添加了 JS 以确保密码长度至少为 8 个字符,至少包含一个数字,并且至少包含一个大写字母。 问题是,当用户单击 ...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2021 STACKOOM.COM