当前位置:  开发笔记 > 编程语言 > 正文

您可以在文档管理应用程序中使用哪些文件类型/扩展名?

如何解决《您可以在文档管理应用程序中使用哪些文件类型/扩展名?》经验,为你挑选了1个好方法。

我正在研究一种有点文档管理系统.最终用户是业务类用户.

我目前只检查并允许上传文件,如果它们是以下之一:

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

我的问题是 -

如果我在列表中添加"xml"?他们会引起任何安全问题吗?

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

要么

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

谢谢你的建议.



1> bobince..:

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

白名单优于黑名单.有很多很多危险的文件类型比你可能知道的要多.这四个人几乎没有划伤表面.

如果我在列表中添加"xml"?他们会引起任何安全问题吗?

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

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

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

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

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

    使用Content-Disposition: attachment标题为所有用户上传的文件提供服务,以便始终下载它们并且不会在浏览器中显示.

(2)它本身应该是不漏水的,但在过去的实践中,由于浏览器和插件的利用,它已经有办法解决它,所以我不确定我是否完全信任它.(1)自己停止XSS,但它不会阻止其他恶意内容,如包含iframe的HTML文件来利用网站.

所以最好同时做到这两点.

推荐阅读
贴进你的心聆听你的世界
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有