#1 - 2019-3-17 13:10
猫苇
仅实现提供的 API 的部分功能(追番用记录够了),超展开是不会有的,现已上架应用商店,图标及素材由ekibun提供。
界面参考 UWP 版哔哩哔哩动画 和 pixivfs-uwp,功能希望能与 iOS超官方客户端 看齐。
开源地址:GitHub
下载地址:应用商店
系统要求:Windows 10 17763 及以上
界面长这样
界面参考 UWP 版哔哩哔哩动画 和 pixivfs-uwp,功能希望能与 iOS超官方客户端 看齐。
开源地址:GitHub
下载地址:应用商店
系统要求:Windows 10 17763 及以上
界面长这样
1. 删除敏感信息用[bfg](https://help.github.com/en/artic ... a-from-a-repository )或者`git filter-branch`,否则还会存在于git repo里
2. app id是无所谓的,bangumi的一些api要求发请求一定要带上,所以不是秘密
3. client secret理论上应该保密,因为有了这个就可以用client的refresh token换取access token,也可以假冒你的客户端的身份来让用户授权。但dart官方开发的[oauth client](https://github.com/dart-lang/oauth2)里提到"This is fine; OAuth2 servers generally won't rely on knowing with certainty that a client is who it claims to be."我觉得是比较有道理的。实际上别人拿了你客户端的身份也没啥用,除非你的客户端比别人的有特殊权限(比如著名的weico apikey泄漏事件,导致很多第三方微博客户端都可以使用weico的高级权限我猜就是因为类似的原因,但对于bangumi来说我觉得sai大概不会开发这么高级的功能所以也无所谓,真的有了再保护好就行)。
4. access token和refresh token是绝对的秘密,相当于用户密码,客户端要做好保密,自己测试的时候也不应该出现在git repo里
5. 所以最理想,最安全的方案是客户端上只存client id,然后用户请求授权时把用户导向你的服务器(存有client secret)进行授权,然后把access token返回给用户,用户需要刷新授权时也是把请求发向你的服务器。
实际上对于小开发者来说这让情况变糟了(需要考虑自己架设服务器的安全性和稳定性,同时每次用户授权都要经过开发者的服务器导致授权速度变慢)
6. 所以我现在觉得对于本地客户端来说就直接把client secret和app id编译的时候存在binary里就行(但是还是不要放在git repo里),要注意的是这样别人反编译还是可以拿到client secret,所以相当于牺牲一定的安全性换来很多方便
算了想想我也舍不得小星星