V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
wayne3602
V2EX  ›  问与答

Github Pages 部署网站问题

  •  
  •   wayne3602 · 2023-01-29 17:20:41 +08:00 · 2398 次点击
    这是一个创建于 693 天前的主题,其中的信息可能已经有所发展或是发生改变。

    最近也是使用GitHub Pages部署了自己的个人博客

    但是,GitHub Pages是一个开源仓库,这样的话别人想盗取整个文章直接到对应仓库 clone 就行了,辛辛苦苦写的文章实在是不想被这样盗取,甚至又可能发生原作者是盗取的现象。

    如何保护自己的源代码,让源码不可见,并且Pages可以正常被访问?

    目前了解的方法只有开会员,让私有仓库成为GitHub Pages

    第 1 条附言  ·  2023-01-29 18:23:12 +08:00
    为什么会有这个想法,在这里引用一下一位博主发的言论

    无法隐藏源码。你的 _post 目录下的文章可以随意的复制然后放到别的地方当作他们自己的内容。

    无法隐藏修改记录。如果你有一些内容突然不想放到博客上了,于是你把部分内容给删了,但是别人仍然可以通过访问仓库源码的历史记录查看到该文件的历史,你的修改一览无余。

    无法使用 Gitalk 。以上两个问题可以使用 Github Pro 及以上方式解决,该种付费账户的功能之一就是允许私有仓库使用 Github Pages 。但是这样就无法使用 Gitalk 这种需要第三方写入 issue 的留言工具了。

    本地与线上打包结果不一致或报错无法排查。因为 Github Pages 提供的 Jekyll 对我们来说是黑盒,因此无法排查。

    无法使用一些自定义 /三方插件。因为 Github Pages 只支持 部分插件,因此诸如可以对分类文章进行分页而不仅限于首页分页的 jekyll-paginate v2 版就无法使用。
    第 2 条附言  ·  2023-01-29 18:29:39 +08:00
    我的意思不是说自己写的文章不允许别人复制,就是基于最近利用 GitHub pages 搭建博客产生的一个疑问。既然是要搭建博客,肯定是要分享内容的,而不是占为己有。

    希望大家能理解我的意思,只是一个新手的提问罢了,大家不要生气就好
    ShineyWang
        1
    ShineyWang  
       2023-01-29 17:45:32 +08:00 via Android
    你文章都发布出去了,不管是谁一篇一篇拷贝难度又如何?
    更别说,想盗取你文章的人连爬博客都做不到吗?
    wayne3602
        2
    wayne3602  
    OP
       2023-01-29 17:48:34 +08:00 via Android
    @ShineyWang 不是,如果他能直接去 github 盗取源代码,这不是太简单了,我整个的页面乃至内容都可以被盗取,网络上无法避免盗取情况发生,但至少让盗取的步骤繁琐一些比较好吧
    Blanke
        3
    Blanke  
       2023-01-29 17:51:01 +08:00
    换私有仓库不一样吗,前端的代码都能直接拿到
    towave
        4
    towave  
       2023-01-29 17:51:22 +08:00
    有这需求,放本地得了,不公开
    cpstar
        5
    cpstar  
       2023-01-29 17:52:32 +08:00
    只要能让人看,就能被“盗”走,最不济 OCR 行不行。
    折腾了半天,也只防了君子,能防住小人么?除非跟 xSDN 那种 VIP 似的,服务器根本不给前端传,靠 DOM 能变出来花么?!
    Codeword
        6
    Codeword  
       2023-01-29 17:54:10 +08:00 via Android
    源代码仓库转私有,用 github actions 构建并提交到另外的公开仓库。github pages 绑定公开仓库就行。
    1462326016
        7
    1462326016  
       2023-01-29 17:57:19 +08:00
    因为提供的信息不太多,所以我的以下回答基于几个假设:
    1. GitHub Pages 使用的是 hexo 之类的工具
    2. 你把 hexo 的源代码文件包括配置文件都推送到了远端
    3. 你想保护的源代码包括原始的 md 文件和一些私有的配置文件

    我的回答:
    可以参考我的博客部署方式
    1. 将源代码推送到一个私有的仓库
    2. 通过 GitHub Actions 构建博客,将构建产物( html 源代码)通过 git 推送到另一个开源的仓库中
    3. 将开源的仓库开启 GitHub Pages
    这样别人只能获取你网站的 html 源代码和其他一些配置信息,不会获取你的私有配置,也就是说,不克隆这个仓库也能获取到的信息( html 源码)
    1462326016
        8
    1462326016  
       2023-01-29 17:59:04 +08:00
    我写个回复的功夫这么多人了,大家好热情,另外补充一句,以上方式想要获取文章内容只能通过爬虫了🤣
    hsfzxjy
        9
    hsfzxjy  
       2023-01-29 18:01:36 +08:00 via Android
    pages 的代码推到私有仓库储存
    ShineyWang
        10
    ShineyWang  
       2023-01-29 18:02:01 +08:00 via Android
    @wayne3602 你想保护什么源码?
    你能写出多少让别人盗的代码?
    说实话,我们遇到的绝大多数问题别人早都解决了;根本不需要来看你的代码

    我认为你先考虑怎么写好你的博客再说
    Light3
        11
    Light3  
       2023-01-29 18:05:15 +08:00
    emmmm 哥们是程序员吗
    这思路真的是太有问题了
    既要能在网上看 又要用开源 还要不让人随便扒文字
    我只能说有点难 要不自己写一个?
    dzdh
        12
    dzdh  
       2023-01-29 18:05:18 +08:00
    cf page
    wayne3602
        13
    wayne3602  
    OP
       2023-01-29 18:14:34 +08:00 via Android
    @1462326016 猜的真准,就是 hexo 博客, 我尝试过这种方法,觉得这种方法最适合了,但是按教程来就出错,说是 yarn run build 出现 error ,兄弟有没有详细一点的 Actions 教程?
    wayne3602
        14
    wayne3602  
    OP
       2023-01-29 18:15:23 +08:00 via Android
    @ShineyWang ?这不是自己能写出多少的问题,就是想保护一下自己的文章而已。。。。
    wayne3602
        15
    wayne3602  
    OP
       2023-01-29 18:16:21 +08:00 via Android
    @Light3 不是程序员,我的意思就是让盗取源代码不是那么简单,而不是不让别人用这个教程😂😂我也很乐意分享,所以才搭建博客的
    codewld
        16
    codewld  
       2023-01-29 20:16:03 +08:00 via Android
    将原 github pages 对应的仓库设为私有,然后用 vercel 读取该仓库并部署
    abbcccdddd
        17
    abbcccdddd  
       2023-01-29 20:31:37 +08:00 via Android
    16 楼有道理,而且国内访问的话,Vercel 比 GitHub Pages 更快。
    clickhouse
        18
    clickhouse  
       2023-01-29 20:35:21 +08:00
    #6 +1 ,我用的是 peaceiris/actions-gh-pages@v3 的 action ,将私有仓的源文件构建,生成静态页后推送到 blog 的公开仓
    SenLief
        19
    SenLief  
       2023-01-29 20:54:34 +08:00
    用 cloudflare pages 支持从私有的 github repo 拉取。
    1462326016
        20
    1462326016  
       2023-01-29 21:14:47 +08:00
    @wayne3602 #13 可以尝试一下我这个 Actions ,我现在正在使用的就是这个
    <script src="https://gist.github.com/libra146/fd023702baf9396080d5a12015cb9be9.js"></script>
    1462326016
        21
    1462326016  
       2023-01-29 21:21:34 +08:00
    @wayne3602 #13 https://gist.github.com/libra146/fd023702baf9396080d5a12015cb9be9 不太会嵌入代码,可以点这个链接😂
    56rhcrivs55TVKdX
        22
    56rhcrivs55TVKdX  
       2023-01-29 21:28:39 +08:00
    https://github.com/mebtte/animal-photosynthesis
    我的文章, 代码以及部署过程完全开源
    jeanz
        23
    jeanz  
       2023-01-29 22:24:18 +08:00
    用 cloudflare pages ,可以使用私有仓库部署
    lambdaq
        24
    lambdaq  
       2023-01-29 22:37:49 +08:00
    @wayne3602 兄弟。。。github 好像是个。。开源软件托管网站?

    你不开源还来混 github 干毛?
    Bob0800
        25
    Bob0800  
       2023-01-29 22:47:12 +08:00
    写完 _post 把文章加密了,到前端再解密,然后学 CS 某 N 禁止复制,学某乎在图片上加水印(雾
    sunshower
        26
    sunshower  
       2023-01-29 23:03:43 +08:00 via Android
    楼上已经说完了 开两个仓库 源码放私有,生成的静态放公开,公开的开 page ,网上教程很多
    cslive
        27
    cslive  
       2023-01-30 09:35:13 +08:00
    混淆编译,加入禁止复制 js ,禁止打开开发者工具,发布编译后的 html ,这些只能防君子不防小人
    wayne3602
        28
    wayne3602  
    OP
       2023-01-30 10:20:32 +08:00 via Android
    @lambdaq 😅如果看不懂什么意思就别回复了
    wayne3602
        29
    wayne3602  
    OP
       2023-01-30 10:21:19 +08:00 via Android
    @codewld 这个不错,我试试,谢谢您😁
    wayne3602
        30
    wayne3602  
    OP
       2023-01-30 10:21:38 +08:00 via Android
    @SenLief 好的🥰
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5139 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 03:51 · PVG 11:51 · LAX 19:51 · JFK 22:51
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.