防止用户输入过大的PHP“;“允许的内存大小”;

防止用户输入过大的PHP“;“允许的内存大小”;,php,Php,我用$u POST得到一些变量,主要由用户在表单上输入。 为了防止在表单中插入巨大的值,我可以检查这些变量,如果变量太长,则向用户返回一个错误 但是,如果用户输入了一个很长的值,我就不能这样做,因为在这种情况下,整个脚本在我拒绝处理该变量之前就崩溃了。这是对我的服务器安全的威胁吗 如何在不增加默认内存限制的情况下修复此问题?可能吗 可以选择使用javascript限制用户输入,但用户可以通过禁用javascript轻松克服这一限制。您可以使用ini指令post\u max\u size限制帖子正

我用$u POST得到一些变量,主要由用户在表单上输入。 为了防止在表单中插入巨大的值,我可以检查这些变量,如果变量太长,则向用户返回一个错误

但是,如果用户输入了一个很长的值,我就不能这样做,因为在这种情况下,整个脚本在我拒绝处理该变量之前就崩溃了。这是对我的服务器安全的威胁吗

如何在不增加默认内存限制的情况下修复此问题?可能吗


可以选择使用javascript限制用户输入,但用户可以通过禁用javascript轻松克服这一限制。

您可以使用ini指令
post\u max\u size
限制帖子正文的最大大小。然而,它的默认值是800万。如果未更改,则应该可以,因为默认的
内存限制为128M。(php 5.3)

当然,这取决于您将如何处理数据,以及PHP将为此消耗多少内存。在极端情况下,甚至可以创建一个使用1字节输入达到内存限制的示例脚本。因此,您必须为您的应用程序找到合适的值

设置允许的post数据的最大大小。此设置还影响文件上载。若要上载大文件,此值必须大于upload_max_filesize。如果配置脚本启用了内存限制,则内存限制也会影响文件上载。一般来说,内存限制应该大于post最大大小。使用整数时,该值以字节为单位。也可以使用本常见问题解答中所述的速记符号。如果post数据的大小大于post_max_size,则$_post和$_文件超全局为空。这可以通过多种方式进行跟踪,例如,通过将$\u GET变量传递给处理数据的脚本,即,然后检查是否设置了$\u GET['processed']


您有权访问php.ini吗?您可以设置上载\u最大\u文件大小/发布\u最大\u大小

详情请参见此处:


(请注意,恶意用户很容易绕过在HTML表单中设置maxlength)

将客户端上的数据分成若干部分,并通过Ajax进行下载,然后将下载的部分保存在光盘或数据库中。也许是这样?

输入字段的
MAXLENGTH
参数如何?脚本甚至没有运行,这怎么可能是一种享受呢?如果有人对你的网站这样做,他们是在尝试拒绝服务攻击。@Saturnix-假设你可以从用户那里得到垃圾。