个人开发小程序用了网上图片被告索赔几万块 业余程序员做应用常见的版权隐私法律风险全解析 普通人写代码需要注意哪些合规问题 本文结合真实案例帮你避开法律坑 从软件著作权到用户隐私保护都有实用建议
前两天刷到一个案例,看得我后背发凉。
有个程序员,业余时间在微信小程序上做了一个工具类的小应用,功能挺实用的,下载量也不低。结果有人来起诉他了——理由是应用里用了几张网上找的配图,没授权,索赔五万。
法院判了。赔了三万八。
这人当时整个人都是懵的:”我就放了四张图,又不是什么商业大片,至于吗?”
至于。
今天咱们就好好聊聊,业余写代码、搞小程序、做独立开发这件事,到底有哪些法律上的坑。不是吓你,是帮你提前看清路。
一、图片版权:你以为的”免费”,可能贵得离谱
1.1 那些坑人的”免费图片”
先说最普遍的一个误区。
你是不是也这样:打开百度图片,搜一张图,觉得挺好看,直接下载放应用里?
或者去某些网站,看到”免费商用”标签,心里一松就用了?
停。
百度图片上的东西,版权基本都属于原创作者或图库公司。 你搜到的结果,只是搜索引擎的索引,不代表你可以随便用。用之前不授权,就是侵权。
再说”免费商用”这个标签。有些网站确实会标,但你要看两个事情:
第一,这网站本身有没有授权权限。 有些网站自己都没有版权,就是搬运的,你用了它照样有问题。
第二,用之前看清楚授权类型。 常见的几种:
- CC0:放弃一切权利,随便用,不用注明出处。这种最安全。
- CC BY:可以用,但要注明作者。记得留署名。
- CC BY-NC:非商业用途才能用。你做小程序有广告或者有内购,基本就算商业使用了。
- CC BY-SA:可以改,但改完也要用同样的协议开源。
很多程序员根本不看这些,直接用,出事的时候才发现踩坑了。
1.2 真实案例:一张图赔了三万八
就是开头那个案例。
小程序开发者”小张”,做了一个健康管理类的小程序。界面用了三张配图,一张来自某论坛,两张来自一个所谓”素材网”。
对方是专业摄影机构,他们发现小张的应用里用了他们的作品,然后起诉。
小张的抗辩理由挺常见:”我以为是免费的”“我又不知道是谁的作品”“我就用了几张图,又没赚多少钱”。
法院怎么判的?
《著作权法》规定,未经许可使用他人作品,构成侵权,应停止侵害、消除影响、赔偿损失。
被告辩称图片来源于互联网,但未能证明其已获合法授权或属于合理使用情形,抗辩理由不成立。
综合考虑作品类型、使用方式、被告的主观过错程度及原告的实际损失,判令被告赔偿经济损失及合理开支共计三万八千元。
三万八,买几张图。
关键是,这还不算最惨的。有些公司专门”维权”,大批量发现侵权然后起诉,你想想这成本得多高。
1.3 怎么办:用图的合规指南
我整理了一份清单,你自己对照着来:
第一类:完全放心用
- CC0协议图片:去 Unsplash、Pexels、Pixabay 这类网站,它们家的图基本都是CC0。
- 自己画的图:哪怕是用AI生成,只要是你自己的创作,权属没问题。
- 系统自带图标:Android/iOS系统自带的Material Icon或者SF Symbols,这些是操作系统的一部分,你可以用。
第二类:可以用但要小心
- CC BY系列:用之前看清楚要不要署名,署名格式是什么。
- 开源图标库:比如FontAwesome、IconFont,看清楚每个图标的使用协议。有些是免费的,但商业使用要付费。
- 自己拍摄的图:如果照片里有 identifiable 的人脸,最好让被拍摄人签个授权书,不然肖像权又是一个坑。
第三类:绝对不要用
- 网上搜到的图:除非你确认版权方并拿到了授权。
- 别人应用的截图:包含别人UI设计的,可能侵犯美术作品著作权。
- 字体图片:这个更坑,后面单独说。
1.4 字体版权:一个容易被忽略的大坑
字体这个坑,比图片还隐蔽。
很多程序员做应用的时候,会用一些好看的字体来美化界面。比如什么”站酷高端黑”、”方正系列”、”汉仪系列”。
这些字体,大部分是收费的。
你用了,字体公司发现,然后起诉。一个字体可能索赔几千到几万不等。
真实案例:有个独立开发者做了个读书类小程序,界面用了”方正清刻本悦宋”字体。方正公司发现后发律师函,索赔两万。
那个开发者说:”我就一个免费小程序,又没赚钱,凭什么告我?”
法院判了:你用了我的字体,不管你有没有赚钱,都构成侵权。
所以记住:免费字体 ≠ 商业免费字体。
买字体授权最便宜的方式:
- 去字客网、字由这些平台买个人授权,一个字体几百块。
- 用开源字体:思源黑体、思源宋体、站酷系列(部分免费)、AR PL系列。这些完全免费,商业使用也没问题。
二、软件著作权:你的代码,法律保护吗?
2.1 什么是软件著作权
软件著作权,简单说就是”代码这东西,版权是你的”。
你写了一段代码,从写出来的那一刻起,你就自动拥有这段代码的著作权。不需要登记,不需要申请,这是中国《著作权法》规定的。
但是——
登记有用吗?
有用。
虽然你自动拥有著作权,但如果有人抄袭你的代码,你要打官司,你首先得证明”这东西是我的”。如果你没有登记,你得拿出源代码、开发文档、提交记录等等来证明。
登记之后,证书就是初步证据,举证责任就倒过来了,对方要反驳才能推翻。
2.2 怎么登记软件著作权
流程其实不复杂:
第一步:准备材料
- 源代码前后各30页(或者整个项目,如果不足60页就全交)
- 用户手册或者设计文档
- 申请表
- 申请人身份证明
第二步:提交申请 现在可以在线提交,中国版权保护中心官网:https://www.ccopyright.com.cn/
第三步:等待审核 一般需要30个工作日左右。
第四步:拿证 审核通过后,你会拿到一个软件著作权登记证书。
费用:官费是250元左右,如果是加急会贵一些。有些代理机构收费会更高,自己办其实不贵。
2.3 软著能保护什么,不能保护什么
很多人对软著有误解,以为登记了就能保护一切。其实不是。
软著保护的是代码的表达方式,不保护功能本身。
什么意思?
打个比方:你写了一个记账小程序,功能是记录支出、分类统计。有人看了你的小程序,觉得功能很好,自己重新写了一遍代码,实现了完全一样的功能。
这种情况,软著一般保护不了你。因为代码是你自己写的,只是功能类似,不构成侵权。
软著真正能防的是:有人直接复制粘贴你的代码,或者改都不改就抄。
所以:
- 想做功能类似的产品,不侵权
- 直接抄代码,侵权
2.4 代码防抄袭的其他方式
光靠软著不够,还想多一层保护,可以做这些:
代码混淆
// 混淆前
function calculateTax(income) {
if (income <= 5000) {
return 0;
} else if (income <= 8000) {
return (income - 5000) * 0.03;
} else {
return (income - 8000) * 0.1 + 90;
}
}
// 混淆后(工具自动生成)
function _0x1a2b(_0x3c4d) {
if (_0x3c4d <= 5000) return 0;
if (_0x3c4d <= 8000) return (_0x3c4d - 5000) * 0.03;
return (_0x3c4d - 8000) * 0.1 + 90;
}
用工具把变量名、函数名打乱,增加抄袭难度。
水印/鉴权机制 在关键逻辑里加一些只有你才知道的”指纹”,如果有人抄你的代码,你能识别出来。
开源协议保护 如果你的代码是开源的,选择一个合适的开源协议。比如GPL协议,如果有人用你的代码,他们也必须开源自己的代码。MIT协议就宽松很多,别人可以拿去商用。
三、用户隐私:小程序采集信息,法律怎么规定的?
3.1 隐私相关的法律
做应用,隐私合规是绕不过去的。中国目前涉及隐私保护的主要有这几部法律:
《个人信息保护法》 2021年11月1日正式实施,是中国第一部专门针对个人信息的综合性法律。规定得很细,从收集、使用、存储到删除,每个环节都有要求。
《网络安全法》 2017年实施,规定了网络运营者的安全义务。
《数据安全法》 2021年实施,侧重数据本身的安全管理。
APP/小程序合规要求 工信部、网信办这些部门出了很多具体的规定,比如《App收集使用个人信息最小必要评估规范》。
3.2 最小必要原则:最重要的一个概念
最小必要原则,意思是:你只能收集实现功能所必需的最少信息,不能多收集。
举几个常见的违规例子:
| 你的应用类型 | 违规收集行为 | 正确做法 |
|---|---|---|
| 计算器工具 | 要求读取通讯录 | 不需要任何权限 |
| 天气查询 | 要求定位权限,但定位是为了显示天气 | 应该让用户主动选择城市,不强制定位 |
| 图片编辑 | 要求读取相册全部照片 | 应该只让用户选择需要的照片,不扫全部 |
| 记账应用 | 收集用户身份证号 | 只需要姓名和联系方式,不需要身份证 |
定位权限是重灾区。
很多小程序都要求定位,但理由很牵强。比如一个记账应用,说需要定位是为了”记录消费地点”。实际上,用户每次消费的时候手动标记地点就够了,不需要后台一直定位。
3.3 隐私政策怎么写
很多开发者会直接抄一个模板,然后改个名字就用。这样其实有风险。
隐私政策至少要包含这些内容:
第一,收集哪些信息 要列清楚:姓名、手机号、位置、设备信息等,每一条都要说明为什么需要。
第二,怎么用这些信息 不能含糊其辞,比如”用于提供服务”这种说法太笼统,要具体说明。
第三,跟谁共享 如果你接了第三方SDK,比如统计、推送、支付,这些SDK也会收集信息,要告诉用户。
第四,用户有哪些权利 用户有权查询、更正、删除自己的信息,这些权利要写在隐私政策里。
第五,如何联系你 要提供一个联系方式,让用户可以咨询或投诉。
举个例子,一个简单记账小程序的隐私政策节选:
我们收集的信息
设备信息:我们收集设备的型号、操作系统版本,用于优化应用性能。我们不会收集IMEI、MAC地址等能识别个人身份的设备标识。
账户信息:您可以选择不注册直接使用本应用。如果您选择注册,我们将收集您的手机号码用于账户登录和恢复。
本地存储:您的记账数据存储在本地设备中,我们不会上传到您的个人信息。
注意,这个例子里没有收集位置信息,因为记账功能不需要。如果应用确实需要位置信息(比如记录消费地点),要单独说明。
3.4 第三方SDK:你的应用”内置”了别人的代码,责任算谁的?
这是一个很实际的问题。
你用小程序开发,很可能接了各种第三方SDK:
- 统计SDK(比如友盟、GrowingIO)
- 推送SDK
- 支付SDK(微信支付、支付宝)
- 登录SDK(微信登录、QQ登录)
每个SDK都会收集一些信息,这些信息也算在你的头上。
举个真实案例:有个开发者做了一个小程序,接了友盟统计。后来被监管部门检查,发现友盟SDK收集了用户的设备ID和位置信息。开发者说”这是SDK自己收集的,我不知道”,监管部门说”你是应用开发者,你有责任审核SDK的行为”。
最后这个开发者被约谈、整改,还交了罚款。
所以接SDK之前,一定要:
- 搞清楚这个SDK收集什么信息
- 在隐私政策里明确告知用户
- 选择合规的SDK,避免接一些来路不明的
3.5 微信小程序的隐私合规
微信小程序现在对隐私合规查得很严。
小程序隐私协议 2022年微信开始要求所有小程序在发布时填写《小程序隐私保护指引》,用户第一次打开小程序时会弹窗告知收集了哪些信息。
必须声明的信息类型
- 个人信息(姓名、身份证号、手机号等)
- 设备信息(设备型号、操作系统、版本等)
- 位置信息(精确位置、粗略位置)
- 照片/媒体信息
- 通讯录
- 浏览器信息等
如果小程序没有正确填写隐私指引,或者实际收集行为与声明不符,会被下架。
真实案例:2023年,微信下架了上千个小程序,原因包括:
- 未按要求填写隐私指引
- 声明不收集但实际收集了用户信息
- 收集了与功能无关的信息
所以别侥幸,微信的审核是认真的。
四、用户协议:那堆没人看的文字,其实很重要
4.1 用户协议是什么
用户协议(也叫服务条款)是用户注册或使用你的应用时同意的那一堆条款。
很多人觉得这东西没人看,随便写写就行。
千万别这么想。
用户协议是你和用户的合同,出了纠纷,法院会看这个。如果你没写清楚,吃亏的是你自己。
4.2 用户协议里应该有什么
一个基本合规的用户协议应该包含:
第一,服务范围 说清楚你的应用提供什么功能,不提供什么功能。
第二,用户行为规范 告诉用户什么行为是不允许的,比如不能刷单、不能发布违法内容。
第三,知识产权声明 声明应用的内容、设计、代码等归你所有,用户不能擅自复制、传播。
第四,免责声明 这个很重要。比如:
- 应用提供的信息仅供参考,不构成专业建议
- 因用户不当使用造成的后果,你不承担责任
- 不可抗力导致的服务中断,你不承担责任
第五,争议解决 约定如果出现纠纷,去哪个法院起诉,或者走仲裁。
4.3 一个真实的教训
有个开发者做了一个理财类的小程序,用户协议里没写”信息仅供参考,不构成投资建议”。
后来一个用户亏了钱,起诉开发者,说开发者误导了他。
开发者慌了,因为协议里没免责条款。最后法院判开发者承担部分责任,赔了几万块。
如果你做的应用涉及金钱、健康、法律等专业领域,免责条款一定要写。
五、开源代码的法律风险
5.1 开源不等于随便用
很多人以为开源代码可以随便用,想怎么改就怎么改。
不是的。
开源代码有各种许可证,每种许可证有不同的要求:
MIT许可证:最宽松。你可以随便用,修改,商用,只要保留原始版权说明就行。
Apache 2.0许可证:和MIT类似,但额外有一个专利授权条款,对使用者更友好。
GPL许可证:这个比较严格。如果你用了GPL的代码,你的整个项目也要用GPL开源。也就是说,你不能把用了GPL代码的东西变成闭源商业产品。
LGPL许可证:介于GPL和MIT之间。如果只是动态链接使用LGPL代码,你的主程序可以不开源;但如果修改了LGPL代码本身,那修改部分要开源。
5.2 踩坑的案例
有个开发者做了一个商业小程序,用了一个开源的图表库。这个库是GPL协议的。
开发者没仔细看协议,直接把代码拷进了自己的项目,然后卖钱。
后来原作者发现了,发了律师函。开发者说”我就用了一个库,又没改源码”,原作者说”你用了我GPL的代码,你的整个项目都得开源”。
最后开发者被迫:
- 撤掉小程序
- 公开自己的源代码
- 赔偿原作者的损失
教训:用开源代码之前,一定先看许可证。GPL代码用在商业项目里,风险极高。
5.3 怎么查开源代码的许可证
最简单的方法:
- 去GitHub看README,许可证一般在README里说明
- 看项目根目录有没有LICENSE文件
- 用工具比如licensee(Ruby)、license-checker(Node.js)自动扫描
六、广告和支付的法律风险
6.1 广告合规
如果你的小程序有广告,要注意:
不能投放的广告类型:
- 违法广告(比如卖假药、假证件)
- 诱导点击的广告(比如”不点不是中国人”)
- 虚假广告(比如”躺赚万元”)
广告要标注”广告”字样:这是法律规定,没说就是违规。
广告主资质:如果广告涉及医疗、金融、教育等特殊领域,广告主要有相应资质。你作为小程序平台方,有审核义务。
6.2 支付合规
小程序如果涉及支付,有几个要点:
第一,不能做”二清” “二清”是指没有支付牌照的机构,在用户和商户之间中转资金。比如用户付款到你的账户,你再转给商家,这就是二清,是违法的。
正确做法:用微信支付/支付宝的官方接口,资金直接到商户账户。
第二,虚拟商品的支付限制 小程序里卖虚拟商品(比如课程、会员),必须用微信的虚拟支付接口,不能用实物支付接口。混用会被封。
第三,退款规则要明确:在用户协议里写清楚退款政策,避免纠纷。
七、数据安全:别让用户的数据丢了
7.1 数据泄露的后果
如果用户数据泄露了,后果很严重:
- 法律处罚:根据《个人信息保护法》,情节严重的可以罚款50万以下,甚至停业整顿。
- 民事赔偿:用户可以起诉你赔偿损失。
- 信用损失:用户不会再信任你,应用可能就死掉了。
7.2 基本的安全措施
你不需要成为安全专家,但以下几点要做到:
密码加密存储 绝对不能用明文存密码。用bcrypt、scrypt或者Argon2这些算法加密。
// 错误示范:明文存储
user.password = "123456";
// 正确示范:bcrypt加密
const bcrypt = require('bcrypt');
const hashedPassword = await bcrypt.hash("123456", 10);
HTTPS传输 所有用户数据都要通过HTTPS传输,不能用HTTP。
数据最小化存储 不要收集你不需要存的信息。比如用户手机号,如果只是为了发送验证码,验证码发完就可以不存了。
定期备份 万一数据丢了,有备份能恢复。
7.3 出事了怎么办
如果不幸发生了数据泄露:
- 立即止损:关闭漏洞,修改密钥。
- 通知用户:《个人信息保护法》要求,发生泄露要通知受影响的用户。
- 报告监管部门:向网信办、公安机关报告。
- 记录事件:保留所有记录,配合调查。
八、给独立开发者的合规检查清单
最后,我给你整理了一份检查清单,你可以对照着自查:
发布前
- [ ] 应用里的所有图片都有授权(CC0或已购买)
- [ ] 应用使用的字体有商业授权(或使用的是免费字体)
- [ ] 接的第三方SDK都审核过隐私行为
- [ ] 隐私政策已填写,与实际收集行为一致
- [ ] 用户协议已制定,免责条款已写入
- [ ] 应用收集的信息符合最小必要原则
- [ ] 不涉及虚拟支付的实物支付混用
- [ ] 代码没有使用GPL等强传染性许可证的开源组件
运行中
- [ ] 定期审查SDK的行为,确认没有新增的隐私收集
- [ ] 及时处理用户的查询和删除请求
- [ ] 关注法律法规更新,及时调整合规措施
- [ ] 备份用户数据,防止丢失
如果要做商业化
- [ ] 申请软件著作权登记
- [ ] 确认收入来源合法,不涉及违规业务
- [ ] 了解是否需要办理ICP许可证等资质
最后说两句
写这篇文章的时候,我查了不少案例,发现一个规律:很多开发者不是故意的,是真的不知道。
他们觉得”我就一个人做的小应用,又没人关注”,或者”大家都是这么干的”。
但法律不看你的想法,只看你的行为。
合规成本其实不高:
- 免费字体和CC0图片随便用,不花钱
- 软著登记就几百块
- 隐私政策写清楚,也就半天时间
这些成本,比起动辄几万的赔偿,完全值得。
最后送你一句话:技术是工具,法律是边界。在边界内跳舞,才能跳得更久。
加油吧,独立开发者们。
(本文参考了《中华人民共和国著作权法》《中华人民共和国个人信息保护法》《中华人民共和国网络安全法》《数据安全法》以及中国版权保护中心、工信部发布的官方文件,案例均为公开报道的典型案例改编。具体法律问题请咨询专业律师。)
