调问(DWSurvey)是一个坚持前后端代码 100% 开源的问卷调研系统,企业可以私有部署、完全掌控数据。5 月中下旬的这轮更新,核心做了两件事:一是让 Excel 题目导入能携带图片,二是集中修复了答卷密码和验证码等高频安全漏洞。如果你正在用调问搭建内部调研平台,这两项改动直接影响日常使用体验和数据安全底线。
Excel 题目导入 + 图片上传:问卷制作效率翻倍
以前通过 Excel 批量导入题目,只能导入纯文本选项。对于需要配图的题型——比如产品满意度调研中展示不同设计稿、培训反馈中附带课程截图——只能导入后再逐题手动上传图片,效率很低。
本次更新后,Excel 导入流程支持图片字段:在题目行中指定图片 URL 或本地路径,系统会在导入时自动拉取并存储到问卷资源库。这意味着一份包含 20 道图片选择题的问卷,从 Excel 到上线只需一次导入操作。
实际操作要点:
- Excel 模板新增
image_url列,填入图片的 HTTP 地址即可 - 图片会在导入时下载并转存到服务端存储,问卷发布后不再依赖外部链接
- 支持的图片格式包括 JPG、PNG、GIF,单张大小限制默认 5 MB
答卷密码与验证码漏洞修复:堵住数据采集的安全缺口
问卷系统的安全风险往往不在管理后台,而在答卷入口。本次修复集中在三个场景:
答卷密码绕过问题——部分情况下,通过构造 URL 参数可以直接跳过密码验证进入答卷页面,导致受密码保护的问卷被未授权访问。修复后密码校验逻辑统一收归后端,前端不再持有判断权。
验证码刷新失效——验证码图片点击刷新后,部分浏览器缓存导致实际验证码与图片不一致,用户反复填写却始终报错。修复方案是刷新时强制追加时间戳参数,确保每次请求拿到新的验证码图片。
重复提交防护增强——同一答卷链接在短时间内可被多次提交,产生脏数据。新增了提交频率限制和幂等校验。
快速私有部署调问:从克隆到运行
调问基于 Java Spring Boot,私有部署门槛不高。以下是一个最小化本地运行流程,适合先体验再决定是否生产部署。
# 1. 克隆源码(Gitee)
git clone https://gitee.com/wkeyuan/DWSurvey.git
cd DWSurvey
# 2. 确认本地环境
# 需要 JDK 8+、Maven 3.6+、MySQL 5.7+
java -version
mvn -version
# 3. 创建数据库并初始化
mysql -u root -p -e "CREATE DATABASE dw_survey DEFAULT CHARSET utf8mb4;"
# 导入初始化脚本(路径视版本而定,一般在 src/main/resources/sql/ 下)
mysql -u root -p dw_survey < src/main/resources/sql/dwsurvey.sql
# 4. 修改数据库连接配置
# 编辑 src/main/resources/application.properties
application.properties 中需要改的关键配置:
# 数据库连接——改为你本地的用户名和密码
spring.datasource.url=jdbc:mysql://localhost:3306/dw_survey?useUnicode=true&characterEncoding=utf-8&useSSL=false
spring.datasource.username=root
spring.datasource.password=your_password_here
# 文件上传路径——问卷图片和附件存储位置
dw.file.upload.path=/data/dwsurvey/uploads
# 服务端口,默认 8080,可按需修改
server.port=8080
# 5. 编译打包
mvn clean package -DskipTests
# 6. 启动服务
java -jar target/dwsurvey.jar
# 7. 访问管理后台
# 浏览器打开 http://localhost:8080
# 默认管理员账号通常在初始化 SQL 中定义,首次登录后立即修改密码
启动成功后,进入管理后台创建一份问卷,尝试 Excel 批量导入题目并在 image_url 列填入一张公开图片地址,验证图片导入是否正常入库。
生产部署注意事项
把调问从本地体验推向生产环境,有几项不能跳过的配置:
| 项目 | 建议 |
|---|---|
| 数据库 | MySQL 使用独立账号,禁止 root 直连;开启定期备份 |
| 文件存储 | dw.file.upload.path 挂载独立磁盘或对接 OSS,避免和应用日志混存 |
| HTTPS | 在 Nginx 层配置证书,反向代理到 8080,不要让问卷链接裸跑 HTTP |
| 验证码 | 确认本次更新已部署到位,旧版本验证码刷新问题会导致大量无效答卷 |
| 答卷密码 | 对敏感问卷(如内部考核、薪酬调研)务必开启密码保护,并验证修复后的校验逻辑生效 |
如果你之前已经在运行调问,本次更新建议优先升级——答卷密码绕过和验证码失效属于安全级别的问题,不升级等于留门敞开。升级步骤本质上是替换 jar 包并执行增量 SQL,具体迁移脚本在仓库的 upgrade/ 目录下按版本号存放。
调问的开源策略让企业可以审计每一行代码、自定义存储和认证逻辑,这是它相比 SaaS 问卷工具的核心差异。本次更新在实用功能(Excel 图片导入)和安全补丁两个方向同时推进,对已有用户来说是一次值得跟进的版本。