Yunchen Bai
Yunchen Bai
抱歉回复的有点晚,问题可以具体一些吗?400到底是由于什么导致的400?
dnc core 是啥?
有一部分开源项目专门针对此类需求做了实现,比如: https://github.com/widuu/qiniu_ueditor_1.4.3 (貌似是PHP的) 本项目并没有针对这类第三方服务进行支持。后续可以考虑针对第三方服务提供一些接口和实现。 这个文章也提供了一些实现思路: https://www.bbsmax.com/A/Gkz1Xnv6dR/
感谢反馈,会及时处理!
@scwz2131 正在处理中。 另外,我与很多同行探讨了这个问题,大家普遍认为,对于该问题,最重要的是文件夹权限的设置,永远不要执行用户上传上来的文件,通过程序只能尽可能的拦截,但是永远都会有漏洞。 目前我能做的是通过二进制文件头,检查文件的真实类型,检查完成并判断是否为配置中允许的类型。但这样配置仍然不安全,漏洞如下: - 文件头可以伪造,和第一篇文章中所述的伪造文件类型基本一样简单 - JPG文件本身可以打包进去病毒程序,除非不允许上传JPG这类文件,否则都挡不住黑客 所以,结合我跟其他大神讨论的结果,建议先从以下方面入手: - 永远不要执行用户上传的文件,把文件夹权限设置为只读 - 上传文件的文件夹不要放置到网站Host的目录下,配置到网站Host的目录之外 - 禁用UEditor从第三方服务器采集图片的功能
关于禁用UEditor从第三方服务器采集图片的功能: UEditor中,不符合`catcherLocalDomain`中配置的域名的图片在复制时,都会被自动抓取为本地图片,可以通过在前端使用`UE.plugins['catchremoteimage'] = null` 停用该功能,我可以后续提供配置来禁用`CrawlerHandler`,目前暂时没办法彻底关闭改功能。 最近刚忙完,其他的部分会在最近处理完成
你使用的姿势可能有点问题。目前项目没法支持将文件发布存储在多个磁盘中,如果你只是需要将图片存储到一个指定的目录,而非当前项目部署的目录,可以按照以下的方案实现: 以下解决方案针对于.NET core,.NET Framework也类似,可以自行探索。 - 在初始化UEditor时,指定一个basePath,比如 `d:/as/` - 你的`imagePathFormat` 配置应该改成:`/upload/pic/{yyyy}{mm}{dd}/{time}{rand:6}` - 这时API端返回的URL就会是 按照`imagePathFormat`格式化后的一个路径。而你的文件会被保存到 `basePath` 加上给你返回的URL这个路径下,也就是会保存到:`d:/as/upload/pic/{yyyy}{mm}{dd}/{time}{rand:6}` 这个方案只是大概的实现思路,具体细节你可以再摸索一下。
独立的站点、独立的盘符都是可以支持的。
跟配置文件放哪里没有关系,就是我上面说的那样,你可以先试试。或者去阅读下源码看看。实在不符合需求就自己稍作调整。
试试这个basePath 