EN: Read in English
Dunia C4: Perisai Pipeline · Cabaran bos
Cari lubang
Anda akan belajar: cari dan baiki 5 lubang keselamatan dalam workflow yang nampak sebenar, kemudian buktikan ia masih berfungsi.
Teks BM belum disemak oleh penutur asli.
Disemak dengan GitHub Actions 2026-10 pada 31 Okt 2026
Masalahnya
Ketik setiap titik pada garis masa.
Mei salin workflow “PR helper” dari sebuah blog. Ia jalan hijau setiap hari. Sebelum ia jaga repo kedai awam anda, cari dan baiki 5 lubangnya.
Cuba
Bilik 1: tekan setiap lubang. Setiap satu tunjuk serangan dan pembaikannya.
Tekan setiap baris yang berisiko. Setiap satu tunjuk serangan dan pembetulannya.
Fail workflow .github/workflows/pr-helper.yml
Petunjuk
Semak pencetus, permissions, runs-on, setiap baris uses: dan setiap baris run:.Teka
Fail lama itu jalan hijau setiap hari. Adakah ia selamat?
Pilih satu jawapan.
Cuba
Bilik 2: bina PR helper yang selamat. Setiap umpan ialah salah satu lubang.
Tekan blok untuk tambah. Susun ikut urutan.
Blok
Workflow anda
Tekan satu blok di atas untuk mula.
Fail workflow .github/workflows/
name: PR helper
Apa yang berjalan
Belum ada apa untuk dijalankan.
Petunjuk
Pencetus selamat, kunci baca, runner hos. Kemudian checkout, semakan yang dipin, tajuk dalam env, dan ujian.Cuba
Bilik 3: Mei tambah langkah yang label PR “tested”. Merah! Beri job itu kunci yang ia perlukan sahaja. Kemudian buktikan ia hijau.
Tali sawat merah. Betulkan baris kuning, kemudian run semula.
Fail workflow .github/workflows/pr-helper.yml
name: PR helper on: pull_request: permissions: contents: read jobs: check: runs-on: ubuntu-latest steps: - uses: actions/checkout@v7 with: persist-credentials: false - run: npm ci && npm test - run: gh pr edit "$PR" --add-label tested env: GH_TOKEN: ${{ github.token }} PR: ${{ github.event.pull_request.number }}
Kuning: baris 4–5. Anda boleh ubah baris ini.
Tali sawat
Pull request · feature → main
Petunjuk
Label tinggal pada pull request.Semak
Semakan terakhir. Dah dibaiki, atau masih lubang? Leret setiap baris.
Leret ke kanan untuk bagus, ke kiri untuk perlu baiki. Atau guna butang.
on: pull_requestAnda berjaya!
Kini anda boleh cari dan baiki lubang dalam mana-mana workflow.
Nak tahu lebih (pilihan)
Latihan sebenar (pilihan): jalankan actionlint pada workflow anda sendiri. Kemudian buru lima lubang itu sendiri: pencetus, permissions:, runs-on:, setiap uses: dan setiap run:. Baiki satu lubang bagi setiap pull request, supaya setiap perubahan mudah disemak.
English
Mei copied a “PR helper” workflow from a blog. It runs green every day. Before it guards your public shop repo, find and fix its 5 holes.
Room 1: tap every hole. Each one shows the attack and the fix.
The old file ran green every single day. Was it safe?
Room 2: build the safe PR helper. Each decoy is one of the holes.
Room 3: Mei adds a step that labels the PR “tested”. Red! Give the job only the key it needs. Then prove it is green.
Last check. Fixed, or still a hole? Swipe each line.
You can now find and fix the holes in any workflow.
Anda dah siapkan ini. Latihan lagi pun bagus!
Dokumentasi rasmi: Secure use reference · Script injections · Workflow syntax: permissions
Anda dah belajar 25 minit. Rehat sekejap bantu otak anda.
Pecutan selesai! Fokus yang hebat. Regangkan badan seminit?