Best practices and security features for SSVproff.
Security is a top priority in SSVproff. This guide covers authentication, encryption, access control, and best practices for keeping your data secure.
- Use fine-grained tokens with minimal required scopes
- Rotate tokens regularly (every 90 days recommended)
- Never commit tokens to repository
- Store tokens in GitHub Secrets or environment variables
# Set token as environment variable
export GITHUB_TOKEN="your_token_here"
# Use in scripts
curl -H "Authorization: Bearer $GITHUB_TOKEN" \
https://api.github.com/repos/Serg2206/SSVproffrepo- Repository accessworkflow- Workflow managementread:org- Organization access (if applicable)
- Create separate keys for different purposes
- Use restricted keys with minimal permissions
- Enable key restrictions:
- Bucket-specific access
- Read-only when possible
- IP restrictions if applicable
- Server-side encryption enabled by default
- Uses AES-256 encryption
- Encryption keys managed by Backblaze
For sensitive files, encrypt before upload:
# Encrypt file with GPG
gpg --symmetric --cipher-algo AES256 sensitive-file.txt
# Upload encrypted file
rclone copy sensitive-file.txt.gpg b2storage:bucket/
# Decrypt after download
gpg --decrypt sensitive-file.txt.gpg > sensitive-file.txt- All API calls use HTTPS/TLS 1.2+
- rclone uses encrypted connections by default
- GitHub Actions uses secure runners
Enable branch protection for main branch:
branches:
- name: main
protection:
required_pull_request_reviews:
required_approving_review_count: 1
required_status_checks:
strict: true
enforce_admins: trueStore sensitive data in GitHub Secrets:
- Go to repository Settings → Secrets and variables → Actions
- Add new repository secret
- Use in workflows:
- name: Use secret
env:
API_KEY: ${{ secrets.API_KEY }}
run: ./script.sh- Grant minimum necessary permissions
- Use read-only access when possible
- Regularly audit access rights
# Update dependencies
npm audit fix
pip install --upgrade -r requirements.txtfunction validatePath(path: string): boolean {
// Prevent path traversal
if (path.includes('..')) {
throw new Error('Invalid path');
}
return true;
}- All secrets stored in GitHub Secrets
- Branch protection enabled
- Required reviews configured
- Security scanning enabled
- Access regularly reviewed
- Tokens rotated regularly
- Encryption enabled
- Backups tested
- API Reference - Secure API usage
- Configuration - Security settings
- Usage Guide - Secure operations