0

我的表单中有一个密码字段,没有最大长度限制。

密码将通过 PHPass 框架散列到数据库中。

我读过一些地方,通过类似没有最大限制的字段输入大数据可以对站点进行 DoS。

所以我的问题是:

  • 我应该如何处理服务器端的大密码数据条目(使用 PHP)?
4

3 回答 3

0

攻击者总是可以向您的服务器发送大数据,无论是密码字段还是其他字段,都无法使用 HTML 或 JavaScript 阻止此客户端。您可以做的是在发送大量输入时停止在服务器端工作,尽管这个限制应该非常高。

请记住,对于像 BCrypt 这样的迭代哈希函数,只有第一个计算有更多的数据可以使用,其他迭代使用之前的哈希。在我看来,没有理由将密码限制在 1KB 以下。

于 2014-04-16T08:58:26.097 回答
0

简单的:

任何一个

添加一个高但不危险的长度限制 - 例如,128 个字符比大多数真实的人使用的要多,添加了一个上诉流程,即人们可以点击一个链接来请求人类的特定例外,

或者

让 javascript 元素计算散列客户端并仅提交散列 - 无论如何这对安全性更好,因为密码永远不会离开客户端。

于 2014-04-16T06:03:15.087 回答
0

如果您希望保护自己免受 DoS 攻击,则必须使用:
post-max-size - http://www.php.net/manual/en/ini.core.php#ini.post-max-size

这允许您控制 PHP 服务器将接受多少 POST 数据,请注意,如果您的表单正在上传文件,这也会控制文件的大小。

于 2014-04-16T06:16:17.133 回答