cuốn sách gpt4 ai đã làm

php - 您允许文档管理应用程序使用哪些文件类型/扩展名?

In lại Tác giả: Walker 123 更新时间:2023-11-28 12:11:06 29 4
mua khóa gpt4 Nike

我正在开发一种文档管理系统。最终用户是企业级用户。

我目前仅检查并允许上传符合以下条件之一的文件:

"png|jpe?g|gif|xls|doc|docx|csv|ppt|txt|pdf|rtf"

我的问题是 -

  • 如果我将“xml”添加到列表中?它们会导致任何安全问题吗?

  • 我还可以添加哪些其他文档类型/扩展名?

hoặc

我应该检查 NOT IN "exe|bat|php|js" 并允许所有其他类型吗?

感谢您的建议。

câu trả lời hay nhất

Should I check NOT IN "exe|bat|php|js" and allow all other types?

没有。白名单比黑名单更好。有很多很多比您可能了解的更危险的文件类型。这四个仅仅触及表面。

If I add "xml" into the list? can they cause any security issue?

是的,[X][HT]ML 可能包含在为其提供服务的站点的安全上下文中运行的脚本。这允许任何可以将文档上传到您网站的人将 JavaScript 注入(inject)您的网站(窃取 cookie、伪造请求等)。

但是...它实际上并没有添加任何您尚未遇到的安全问题。因为即使按文件类型/扩展名列入白名单也不安全,这要归功于 IE 及其错误的类型嗅探。您可以上传 .txt 文件,并使用 Content-Type: text/plain header 正确提供该文件,但如果它包含 IE 认为看起来像 HTML 的序列,则 IE会忽略你并将其呈现为 HTML — boom,XSS。

(实际上任何其他类型都是如此,但 .txt 是最容易受到攻击的。)

有两种方法可以解决这个问题:

  1. 将所有用户上传的文件从不同的主机名提供到主应用程序站点,以便它们位于不同的 JS 安全上下文中,并且不共享 cookie 或身份验证数据。

  2. sử dụng Content-Disposition:attachment header 提供所有用户上传的文件,以便始终下载这些文件而不在浏览器中显示这些文件。

(2) 本身应该是无懈可击的,但在过去的实践中,由于浏览器和插件的利用,已经有一些方法可以绕过它,所以我不确定我是否会完全信任它。 (1) 其本身可以阻止 XSS,但它不能阻止其他令人讨厌的行为,例如包含 iframe 的 HTML 文件来利用网站。

所以最好两者都做。

关于php - 您允许文档管理应用程序使用哪些文件类型/扩展名?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1560300/

29 4 0
Đề xuất bài viết: javascript - 填充多个 id 标签
Đề xuất bài viết: CSS 列水平排序
Đề xuất bài viết: css - 等高的 div 始终并排放置
Đề xuất bài viết: ios - Swift - 如何用单元格填充 Collection View
Chứng chỉ ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com
Xem sitemap của VNExpress