Docker安装kkfileview,kkfileview在docker部署后预览出现预览中的字体样式与源文件不同的解决办法,动态水印 kkfileview漏洞修复

目录

1.Docker安装kkfileview

2.kkfileview在docker部署后预览出现预览中的字体样式与源文件不同的解决办法

2.1. 物理机或虚拟机上运行 

2.2. Docker容器环境环境运行 

3.docker中更改kkfileview的配置文件application.properties

4.如何水印文本内容动态传值

动态水印

静态水印

5.扩展漏洞,修复

5.1 延伸:升级到4.1.0 版本后,提示限制目录运行

6.添加Office支持


1.Docker安装kkfileview

2.kkfileview在docker部署后预览出现预览中的字体样式与源文件不同的解决办法

由于在docker中每个容器都是独立的,存在此问题是因为部署docker后在容器中并没有对应的字体样式,因此会出现此问题,解决此问题的办法是将系统中的字体目录映射到kkfileview启动容器中的目录,以linux服务器为例,按照官网的部署方式:

2.1. 物理机或虚拟机上运行 #

从 码云发行版本 下载最新版发行包

解压kkFileView-x.x.x文件(Windows用.zip包,Linux/MacOS用.tar.gz包)

打开解压后文件夹的bin目录,运行startup脚本(Windows下以管理员身份运行startup.bat,Linux以root用户运行startup.sh)

浏览器访问本机8012端口 http://127.0.0.1:8012 即可看到项目演示用首

2.2. Docker容器环境环境运行 #

拉取镜像

docker pull keking/kkfileview

原运行方式:

docker run -it -p 8012:8012 keking/kkfileview

修改为:

下载如下字体包 http://kkfileview.keking.cn/fonts.zip 文件解压完整拷贝到Linux下的 /usr/share/fonts目录。然后依次执行命令:mkfontscale 、mkfontdir 、fc-cache使字体生效

运行docker时,将其目录映射到容器中

运行方式修改为:

docker run -it -p 8012:8012 -d --privileged=true -v /usr/share/fonts/:/usr/share/fonts keking/kkfileview

浏览器访问容器8012端口 http://xxx.xxx.xxx.xxx:8012 即可看到项目演示用首页


3.docker中更改kkfileview的配置文件application.properties

项目需要对kkfile指定预览文件的路径地址,需要在docker中更改或者外挂新的配置文件.

docker中kkfileview的配置文件地址为/opt/kkFileView-xxx/config(xxx为kkfileview的版本号,看你安装的是什么版本,比如我的是/opt/kkFileView-3.5.1/config)

修改该配置文件功能,如:水印,控制下载,预览等

docker 启动时外挂配置文件方式

run命令后面加上 -v (新的配置文件地址):/opt/kkFileView-3.5.1/config/application.properties


【注】一般容器里面的 Linux是精简版的,没有 less 、cat 、vim/vi 等命令,如果需要的话可以自己安装,默认自带 APT 命令。

APT安装vim,先进入需要安装的容器(docker exec -it 容器标识 bash ),再执行如下命令:

更新:

apt update

安装vim:

apt-get install vim


4.如何水印文本内容动态传值

动态水印:

在预览url后面加上参数&watermarkTxt即可
var url = ‘http://127.0.0.1:8080/file/test.txt’;

//要预览文件的访问地址

window.open(‘http://127.0.0.1:8012/onlinePreview?url=’ + encodeURIComponent(url) + ‘&watermarkTxt=’ + encodeURIComponent(‘动态水印’));

静态水印:

直接在application.properties配置文件中修改:watermark.txt = ${WATERMARK_TXT:我的水印}

5.扩展漏洞,修复:

kkFileView-4.0.0及以前的版本,存在任意目录访问漏洞;建议升级到kkFileView-4.1.0及++版本;

漏洞复现:

http://localhost:8012/getCorsFile?urlPath=file:///etc/passwd

5.1 延伸:升级到4.1.0 版本后,提示限制目录运行:

路径加一个斜杠/,成功突破目录限制预览,但是暴500错误,

file:///etc/passwd 也是 500;base64也是 500。 

应该目录限制是突破了,这个500错误暂时不清楚情况。

好像全站不支持脚本运行,附件上传默认上传到tmp目录,可以上传/etc/passwd.jsp 然后预览会在 tmp上级目录上传一个passwd.jsp,但是继续跳转目录不能成功。
 

6.添加Office支持:

首先安装 开源OFFICE openoffice或LibreOffice 建议安装LibreOffice;

LibreOffice或OpenOffice(Windows下已内置,CentOS或Ubuntu下会自动下载安装,MacOS下需要自行安装)。

修改kkfileview配置参数 : office.home

cd kkFileView-4.1.0/config/application.properties

# 说明:加粗标识具体情况修改
server.port = ${KK_SERVER_PORT:8012}
 
#文件资源路径
file.dir = ${KK_FILE_DIR:/data/app/kkfileview/kkFileView-4.1.0/temp}
 
###################### office-plugin #####################
##office服务的进程数,默认开启两个进程
office.plugin.server.ports = 2021,2022
 
#office组件home路径, Linux查看路径:which libreoffice*
# linux中目录是/opt/libreoffice7.1,差异版本不同
office.home = ${KK_OFFICE_HOME:/opt/libreoffice7.4}

 如果本地没有安装libreoffice,则参考:

链接地址1,链接地址2链接地址3最全

Windows环境开发参考链接, 前端应用链接


如果本篇文章对你有帮助的话,很高兴能够帮助上你。

当然,如果你觉得文章有什么让你觉得不合理、或者有更简单的实现方法又或者有理解不来的地方,希望你在看到之后能够在评论里指出来,我会在看到之后尽快的回复你。

  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值