gpt4 book ai didi

php - 如何防止以普通(纯文本)形式上传文件

转载 作者:太空宇宙 更新时间:2023-11-04 00:13:30 25 4
gpt4 key购买 nike

<!DOCTYPE html>
<html>
<body>
<form action="/submit_page.php" method="post" enctype="multipart/form-data">

Enter your first name and last name below :<br>
First name:
<input type="text" name="fname"><br>
Last name:
<input type="file" name="lname" ><br>

<input type="submit" value="Submit" name="submit">

</form>
</body>
</html>

以上表单仅适用于两个输入字段

- 名字
- 姓氏

现在(假设作为黑客)我已将姓氏文本输入字段修改为姓氏文件输入,并在表单属性中添加了enctype="multipart/form-data",然后点击提交。

无论文件有多大,它都会随文件一起发送数据,并且服务器仍在临时接收数据,这意味着它会占用我的服务器性能和带宽以及客户端带宽,但表单仅设计用于文本输入

所以我的问题是如何防止这种黑客攻击?

最佳答案

如果用户只需要上传最大大小为 5 MB 的文件和几个文本字段,则将 POST 内容总量限制为 6 MB 左右。

这是另一个答案,描述了如何在 PHP 中执行此操作:
Change the maximum upload file size

这是 NodeJS 的答案:
Node.js: how to limit the HTTP request size and upload file size?

这里解释了为什么这是限制文件上传的唯一方法:

Limiting the size of uploads

Unfortunately the HTTP specification gets in the way again here. The only piece of useful information available before the contents of the POST is the total size of the POST. This includes all uploaded files, all other fields in the form, any headers etc. As a result, the only thing that we can use to limit uploads is the POST size (duh!). You'll want to consider a limit carefully - it should be low enough to prevent denial of service attack, but high enough to let your users upload the kinds of files you want them to.

来源:Stripes (我非常喜欢的一个Java服务器端框架)

关于php - 如何防止以普通(纯文本)形式上传文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48379808/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com