wayne 发表于 2019-1-3 15:42:42

Discuz论坛的SVG图片支持

最近几天为了支持svg. 论坛的后台也被我翻了无数遍了。

最终抽空在本地的ArchLinux里搭建了一个Discuz论坛。Discuz据说以后只在git库上发布。http://www.discuz.net/thread-3825961-1-1.html
最新的代码https://gitee.com/ComsenzDiscuz/DiscuzX。截个图晒一把最近的成果:



======
目前整理出了一个思路:
由于所有图片附件都会存在一个目录upload/data/attachment里。 后缀名不变,只是文件名被转成hash值了。我们找到对应的代码,然后在显示内容的地方增加


====SVG上传带来的安全性问题

另外,据说svg可以内嵌javascript语言,对服务器是很严重的安全隐患,所以我们到底加不加这个feature呢,
安全问题也是很多服务器不支持客户端上传svg图片的主要原因,https://kinsta.com/blog/wordpress-svg/

wayne 发表于 2019-1-3 18:05:11

经过本地测试,下面的代码可以在php页面显示svg文件。直接黏贴代码,会被宝塔给拦截,所以就提供附件了。

zeroieme 发表于 2019-1-3 18:20:13

原来我的一个自以为简单的请求引出怎么多学问:L

wayne 发表于 2019-1-3 22:27:31

zeroieme 发表于 2019-1-3 18:20
原来我的一个自以为简单的请求引出怎么多学问
github上找到一个工具,可以对用户上传的svg图片进行安全性检测和清理,https://github.com/darylldoyle/svg-sanitizer
在线测试工具:http://svg.enshrined.co.uk/

mathematica 发表于 2019-1-4 09:19:37

除了钱,啥都不是问题,
关键郭老板没钱,
不过可以搞个众筹,
搞图片很费钱的

282842712474 发表于 2019-1-4 21:58:50

mathematica 发表于 2019-1-4 09:19
除了钱,啥都不是问题,
关键郭老板没钱,
不过可以搞个众筹,


你这看明白问题没有。这是技术问题。。。

282842712474 发表于 2019-1-4 22:00:10

后缀名会变吧,至少一般的附件会变,常见的图片不会变。

我那天在论坛上搜索了所有的带有jpg的php源码,然后找到所有的数组,都添加上svg后缀,然而还是不生效...放弃了

wayne 发表于 2019-1-5 10:41:16

悲剧,固态硬盘挂了,系统全没了,又花了几个小时的时间安装了Ubuntu系统,搭建好了Discuz,测试了下:
1)上传操作的时候如果点的是图片,不改后缀名,改名字
2)上传操作的时候如果点的是附件,改后缀名和名字

之前我改了多处文件,支持上传图片的方式上传svg,发现data/attachment/目录下有*.svg文件。 考虑到安全问题,得有必要把用户上传的svg文件都给扫描一遍,去掉安全隐患的字段。


页: [1]
查看完整版本: Discuz论坛的SVG图片支持