Skip to content
ShipShield

Security and trust

Your code is yours. This page shows exactly where it goes when you use ShipShield, what we keep, how it is protected, and how to delete it.

Where your code goes

Your browserFree scanner on the home page. Code never leaves your computer.
Our server, in memoryDashboard, repo and live-site scans. Code is analysed and discarded.
Your historyOnly findings are saved: rule, file, line and, if you choose, a one-line snippet with secrets masked.
How you scanWhere it runsWhat we keep
Local scanner in your own CI or on your computerYour GitHub Actions runner or machine. No network callsNothing. Your code never reaches us.
Free scanner on the home pageEntirely in your browser tabNothing. Your code is not uploaded.
Quick scan in the dashboardOur server, in memoryFindings only. One-line snippets are kept unless you turn them off.
GitHub repository scan (public repositories)We download the repository into memory, scan it and discard itFindings only. We never store your source code.
Live-site scanOnly after you prove you own the site. Passive requests, about 20 at most; we never log in or submit formsFindings only
AI explanation (only when you ask)You see the exact text first. After you select Send, up to 500 characters of the flagged line goes to Anthropic's API, with secrets removedWe keep nothing extra; the explanation is shown to you

Your controls

How your data is protected

Scan without sending us any code

The local scanner is the same open engine as this site, packaged as one file. It runs on your computer or in your own GitHub Actions runner, makes no network calls, and uploads nothing. It works on private repositories.

In GitHub Actions (add to .github/workflows/shipshield.yml):

name: ShipShield
on: [push, pull_request]
permissions:
  contents: read
  security-events: write
jobs:
  scan:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - name: Download and verify the scanner
        run: |
          curl -fsSLO https://shipshield.io/cli/shipshield-scan.mjs
          curl -fsSLO https://shipshield.io/cli/shipshield-scan.mjs.sha256
          sha256sum -c shipshield-scan.mjs.sha256
      - name: Scan (code stays on this runner)
        run: node shipshield-scan.mjs . --fail-on high --sarif shipshield.sarif
      - uses: github/codeql-action/upload-sarif@v3
        if: always()
        with:
          sarif_file: shipshield.sarif

On your computer (Node.js 18 or later): download shipshield-scan.mjs, then run node shipshield-scan.mjs path/to/your/app.

Current version 1.0.0. SHA-256: d8ee88246c02e95dd5ab231b2c07f6ccd8a51355153d246fb9f2beb41f1c39f4. The same value is published at /cli/shipshield-scan.mjs.sha256; compare it before you run the file.

Who processes data for us

The companies we rely on, and what each receives, are listed in our Privacy Policy.

Open by design

The scanning engine runs in your browser, so its full source is public at /js/engine.js. You can read every rule we check.

What we don't claim yet

ShipShield has not yet completed an independent penetration test or a SOC 2 audit. We will publish a summary here when we do. A clean score does not guarantee that an app is secure.

Reporting a vulnerability

Found a security problem in ShipShield itself? Email contact@cloudonesoftware.com with "Security" in the subject, or see our security.txt. We aim to acknowledge reports within 5 business days.

Please test only against your own account, never access or change other people's data, and avoid anything that degrades the service, such as load or denial-of-service testing. We will not pursue legal action against good-faith research that follows these rules. [ATTORNEY TO REVIEW safe-harbour wording]