可以在注册页面上引导哪些攻击

Chr*_*ris 8 forms security

我有一个网站注册页面,我正在尝试编制一份我需要做的保护它的列表.如果您知道攻击,请将其命名,并简要描述一下,并简要说明其解决方案.所有有用的答案/评论都会获得投票.

以下是我到目前为止的想法:(并添加其他人的建议.Phew,添加其他输入结果是很多工作,但请保持他们的到来,我会继续在这里添加)

  • SQL注入:来自用户输入日期.解决方案:预备报表.
  • [AviD]"存储过程还提供额外的好处(上面准备的语句),例如对数据库的最小特权的能力"

    • 好点,请解释一下.我认为存储过程与准备好的语句相同.我的意思是那些语句是bindParam变量.他们不一样吗?
  • 在进入db之前不对密码进行哈希处理.解决方案:哈希密码.

  • [AviD]"重新散列,密码需要一个盐(在散列之前添加密码的随机值),以防止彩虹表攻击和同一密码攻击."
  • "每个用户使用的盐应该不同."
    • 好的,我对此有疑问:我知道盐应该是随机的,但也是独一无二的.我们如何建立独特的部分来对抗同一密码攻击?我一直在读这个,但还没有得到明确的答案.
  • [Inshallah]"如果你使用长盐,比如16个字符用于SHA-256(5美元)那么你真的不需要验证它的独特性"
  • [Inshallah]"实际上,我认为是否存在一些冲突并不重要.盐只是为了防止查表,所以即使有2个盐也会是(小)增益,即使有我们不是在谈论一个绝对不能重复的加密随机数.但我不是一个密码分析者"

    • 好点,但有人在这一点上有免责声明吗?
  • Dos攻击?!(我猜这也适用于注册表格)

  • [Pascal Thivent]"在提交敏感数据(如密码)时使用HTTP." "对于中间人攻击,只要使用足够的密码套件"

    • 这里提到的"适当的密码套件"是什么?
  • [Koosha]"在客户端使用MD5和Javascript进行submition之前使用HTTP或加密密码."

    • 我不同意MD5并且不喜欢在客户端加密,对我来说毫无意义.但欢迎其他投入.
  • [Dan Atkinson]排除某些用户名以防止与具有相同名称的现有页面发生冲突(请参阅原始帖子以获取完整答案和解释)

  • [Koosha]"限制用户名允许的字符.例如字母和数字,短划线( - )和点(.)"
    • 请详细说明原因?
  • [Stu42]"使用验证码,以便机器人无法自动创建多个帐户"
  • [AviD]"有比验证码更好的解决方案,但对于低价值的网站来说,它已经足够好了."
    • @AviD,请举一个例子?
  • [rasputin]"使用电子邮件验证"

  • [安德鲁和epochwolf] xss攻击

    • 虽然我不同意安德鲁和epochwolf简单过滤<和>或转换<to&tl; 和>到>.大多数意见建议像HTMLpurifier这样的库.有什么输入吗?

Pas*_*ent 6

使用HTTPS,即HTTP和SSL的组合,在提交密码等敏感数据时提供服务器的加密和安全标识.HTTPS的主要思想是在不安全的网络上创建安全通道.这可确保对窃听者和中间人攻击提供合理保护,前提是使用了足够的密码套件并且服务器证书已经过验证和信任.