Files
Microsoft-Rewards-Script/docs/proxy.md
Light 15f62963f8 V2 (#365)
* first commit

* Addition of a personalized activity manager and refactoring of the logic of activities

* Adding diagnostics management, including screenshot and HTML content, as well as improvements to humanize page interactions and +.

* Adding the management of newspapers and webhook settings, including filtering messages and improving the structure of the summaries sent.

* Adding a post-execution auto-date functionality, including options to update via Git and Docker, as well as a new configuration interface to manage these parameters.

* Adding accounts in Docker, with options to use an environmental file or online JSON data, as well as minimum validations for responsible accounts.

* Improving the Microsoft Rewards script display with a new headband and better log management, including colors and improved formatting for the console.

* v2

* Refactor ESLint configuration and scripts for improved TypeScript support and project structure

* Addition of the detection of suspended accounts with the gesture of the improved errors and journalization of banishment reasons

* Adding an integrated planner for programmed task execution, with configuration in Config.json and +

* Edit

* Remove texte

* Updating of documentation and adding the management of humanization in the configuration and +.

* Adding manual purchase method allowing users to spend points without automation, with monitoring of expenses and notifications.

* Correction of documentation and improvement of configuration management for manual purchase mode, adding complete documentation and appropriate banner display.

* Add comprehensive documentation for job state persistence, NTFY notifications, proxy configuration, scheduling, and auto-update features

- Introduced job state persistence documentation to track progress and resume tasks.
- Added NTFY push notifications integration guide for real-time alerts.
- Documented proxy configuration options for enhanced privacy and network management.
- Included scheduling configuration for automated script execution.
- Implemented auto-update configuration to keep installations current with Git and Docker options.

* Ajout d'Unt Système de Rapport d'Erreurs Communautaire pour Améliorerer le Débogage, incluant la Configuration et l'Envoi de Résumés D'Erreurs Anonyés à un webhook Discord.

* Mini Edit

* Mise à Jour du Readme.md pour Améliorerer la Présentation et La Claté, Ajout d'Un section sur les notifications en Temps Raine et Mise à Jour des badges pour la meille unibilité.

* Documentation update

* Edit README.md

* Edit

* Update README with legacy version link

* Improvement of location data management and webhooks, adding configurations normalization

* Force update for PR

* Improvement of documentation and configuration options for Cron integration and Docker use

* Improvement of planning documentation and adding a multi-pan-pancake in the daily execution script

* Deletion of the CommunityReport functionality in accordance with the project policy

* Addition of randomization of start -up schedules and surveillance time for planner executions

* Refactor Docker setup to use built-in scheduler, removing cron dependencies and simplifying configuration options

* Adding TOTP support for authentication, update of interfaces and configuration files to include Totp secret, and automatic generation of the Totp code when connecting.

* Fix [LOGIN-NO-PROMPT] No dialogs (xX)

* Reset the Totp field for email_1 in the accounts.example.json file

* Reset the Totp field for email_1 in the Readme.md file

* Improvement of Bing Research: Use of the 'Attacked' method for the research field, management of overlays and adding direct navigation in the event of entry failure.

* Adding a complete security policy, including directives on vulnerability management, coordinated disclosure and user security advice.

* Remove advanced environment variables section from README

* Configuration and dockerfile update: Passage to Node 22, addition of management of the purchase method, deletion of obsolete scripts

* Correction of the order of the sections in the Readme.md for better readability

* Update of Readm and Security Policy: Addition of the method of purchase and clarification of security and confidentiality practices.

* Improvement of the readability of the Readm and deletion of the mention of reporting of vulnerabilities in the security document.

* Addition of humanization management and adaptive throttling to simulate more human behavior in bot activities.

* Addition of humanization management: activation/deactivation of human gestures, configuration update and adding documentation on human mode.

* Deletion of community error report functionality to respect the privacy policy

* Addition of immediate banning alerts and vacation configuration in the Microsoft Rewards bot

* Addition of immediate banning alerts and vacation configuration in the Microsoft Rewards bot

* Added scheduling support: support for 12h and 24h formats, added options for time zone, and immediate execution on startup.

* Added window size normalization and page rendering to fit typical screens, with injected CSS styles to prevent excessive zooming.

* Added security incident management: detection of hidden recovery emails, automation blocking, and global alerts. Updated configuration files and interfaces to include recovery emails. Improved security incident documentation.

* Refactor incident alert handling: unified alert sender

* s

* Added security incident management: detect recovery email inconsistencies and send unified alerts. Implemented helper methods to manage alerts and compromised modes.

* Added heartbeat management for the scheduler: integrated a heartbeat file to report liveliness and adjusted the watchdog configuration to account for heartbeat updates.

* Edit webook

* Updated security alert management: fixed the recovery email hidden in the documentation and enabled the conclusion webhook for notifications.

* Improved security alert handling: added structured sending to webhooks for better visibility and updated callback interval in compromised mode.

* Edit conf

* Improved dependency installation: Added the --ignore-scripts option for npm ci and npm install. Updated comments in compose.yaml for clarity.

* Refactor documentation structure and enhance logging:
- Moved documentation files from 'information' to 'docs' directory for better organization.
- Added live logging configuration to support webhook logs with email redaction.
- Updated file paths in configuration and loading functions to accommodate new structure.
- Adjusted scheduler behavior to prevent immediate runs unless explicitly set.
- Improved error handling for account and config file loading.
- Enhanced security incident documentation with detailed recovery steps.

* Fix docs

* Remove outdated documentation on NTFY, Proxy, Scheduling, Security, and Auto-Update configurations; update Browser class to prioritize headless mode based on environment variable.

* Addition of documentation for account management and Totp, Docker Guide, and Update of the Documentation Index.

* Updating Docker documentation: simplification of instructions and adding links to detailed guides. Revision of configuration options and troubleshooting sections.

* Edit

* Edit docs

* Enhance documentation for Scheduler, Security, and Auto-Update features

- Revamped the Scheduler documentation to include detailed features, configuration options, and usage examples.
- Expanded the Security guide with comprehensive incident response strategies, privacy measures, and monitoring practices.
- Updated the Auto-Update section to clarify configuration, methods, and best practices for maintaining system integrity.

* Improved error handling and added crash recovery in the Microsoft Rewards bot. Added configuration for automatic restart and handling of local search queries when trends fail.

* Fixed initial point counting in MicrosoftRewardsBot and improved error handling when sending summaries to webhooks.

* Added unified support for notifications and improved handling of webhook configurations in the normalizeConfig and log functions.

* UPDATE LOGIN

* EDIT LOGIN

* Improved login error handling: added recovery mismatch detection and the ability to switch to password authentication.

* Added a full reference to configuration in the documentation and improved log and error handling in the code.

* Added context management for conclusion webhooks and improved user configuration for notifications.

* Mini edit

* Improved logic for extracting masked emails for more accurate matching during account recovery.
2025-09-26 18:58:33 +02:00

12 KiB

🌐 Proxy Configuration

🔒 Route traffic through proxy servers for privacy and flexibility
Enhanced anonymity and geographic control


🎯 What Are Proxies?

Proxies act as intermediaries between your script and Microsoft's servers, providing enhanced privacy, geographic flexibility, and network management capabilities.

Key Benefits

  • 🎭 IP masking — Hide your real IP address
  • 🌍 Geographic flexibility — Appear to browse from different locations
  • Rate limiting — Distribute requests across multiple IPs
  • 🔧 Network control — Route traffic through specific servers
  • 🔒 Privacy enhancement — Add layer of anonymity

⚙️ Configuration

Basic Setup

{
  "browser": {
    "proxy": {
      "enabled": false,
      "server": "proxy.example.com:8080",
      "username": "",
      "password": "",
      "bypass": []
    }
  }
}

Configuration Options

Setting Description Example
enabled Enable proxy usage true
server Proxy server address and port "proxy.example.com:8080"
username Proxy authentication username "proxyuser"
password Proxy authentication password "proxypass123"
bypass Domains to bypass proxy ["localhost", "*.internal.com"]

🔌 Supported Proxy Types

HTTP Proxies

Most common type for web traffic

{
  "browser": {
    "proxy": {
      "enabled": true,
      "server": "http://proxy.example.com:8080",
      "username": "user",
      "password": "pass"
    }
  }
}

HTTPS Proxies

Encrypted proxy connections

{
  "browser": {
    "proxy": {
      "enabled": true,
      "server": "https://secure-proxy.example.com:8080",
      "username": "user",
      "password": "pass"
    }
  }
}

SOCKS Proxies

Support for SOCKS4 and SOCKS5

{
  "browser": {
    "proxy": {
      "enabled": true,
      "server": "socks5://socks-proxy.example.com:1080",
      "username": "user",
      "password": "pass"
    }
  }
}

High-quality IPs from real devices

Top Providers

  • Bright Data (formerly Luminati) — Premium quality
  • Smartproxy — User-friendly dashboard
  • Oxylabs — Enterprise-grade
  • ProxyMesh — Developer-focused

Configuration Example

{
  "browser": {
    "proxy": {
      "enabled": true,
      "server": "rotating-residential.brightdata.com:22225",
      "username": "customer-username-session-random",
      "password": "your-password"
    }
  }
}

Datacenter Proxies

Fast and affordable server-based IPs

  • SquidProxies — Reliable performance
  • MyPrivateProxy — Dedicated IPs
  • ProxyRack — Budget-friendly
  • Storm Proxies — Rotating options

Configuration Example

{
  "browser": {
    "proxy": {
      "enabled": true,
      "server": "datacenter.squidproxies.com:8080",
      "username": "username",
      "password": "password"
    }
  }
}

Free Proxies

⚠️ Not recommended for production use

Risks

  • Unreliable connections
  • Potential security issues
  • Often blocked by services
  • Poor performance

🔐 Authentication Methods

Username/Password (Most Common)

{
  "browser": {
    "proxy": {
      "enabled": true,
      "server": "proxy.example.com:8080",
      "username": "your-username",
      "password": "your-password"
    }
  }
}

IP Whitelisting

{
  "browser": {
    "proxy": {
      "enabled": true,
      "server": "proxy.example.com:8080",
      "username": "",
      "password": ""
    }
  }
}

Setup Steps:

  1. Contact proxy provider
  2. Provide your server's IP address
  3. Configure whitelist in provider dashboard
  4. Remove credentials from config

Session-Based Authentication

{
  "browser": {
    "proxy": {
      "enabled": true,
      "server": "session-proxy.example.com:8080",
      "username": "customer-session-sticky123",
      "password": "your-password"
    }
  }
}

🚫 Bypass Configuration

Local Development

Bypass proxy for local services

{
  "browser": {
    "proxy": {
      "enabled": true,
      "server": "proxy.example.com:8080",
      "bypass": [
        "localhost",
        "127.0.0.1",
        "*.local",
        "*.internal"
      ]
    }
  }
}

Specific Domains

Route certain domains directly

{
  "browser": {
    "proxy": {
      "enabled": true,
      "server": "proxy.example.com:8080",
      "bypass": [
        "*.microsoft.com",
        "login.live.com",
        "account.microsoft.com"
      ]
    }
  }
}

Advanced Patterns

{
  "browser": {
    "proxy": {
      "enabled": true,
      "server": "proxy.example.com:8080",
      "bypass": [
        "*.intranet.*",
        "192.168.*.*",
        "10.*.*.*",
        "<local>"
      ]
    }
  }
}

🎛️ Advanced Configurations

Per-Account Proxies

Different proxies for different accounts

{
  "accounts": [
    {
      "email": "user1@example.com",
      "password": "password1",
      "proxy": {
        "enabled": true,
        "server": "proxy1.example.com:8080"
      }
    },
    {
      "email": "user2@example.com", 
      "password": "password2",
      "proxy": {
        "enabled": true,
        "server": "proxy2.example.com:8080"
      }
    }
  ]
}

Failover Configuration

Multiple proxy servers for redundancy

{
  "browser": {
    "proxy": {
      "enabled": true,
      "servers": [
        "primary-proxy.example.com:8080",
        "backup-proxy.example.com:8080",
        "emergency-proxy.example.com:8080"
      ],
      "username": "user",
      "password": "pass"
    }
  }
}

Geographic Routing

Location-specific proxy selection

{
  "browser": {
    "proxy": {
      "enabled": true,
      "regions": {
        "us": "us-proxy.example.com:8080",
        "eu": "eu-proxy.example.com:8080", 
        "asia": "asia-proxy.example.com:8080"
      },
      "defaultRegion": "us"
    }
  }
}

🔒 Security & Environment Variables

Credential Protection

Secure proxy authentication

Environment Variables:

# Set in environment
$env:PROXY_USERNAME="your-username"
$env:PROXY_PASSWORD="your-password"

Configuration:

{
  "browser": {
    "proxy": {
      "enabled": true,
      "server": "proxy.example.com:8080",
      "username": "${PROXY_USERNAME}",
      "password": "${PROXY_PASSWORD}"
    }
  }
}

HTTPS Verification

{
  "browser": {
    "proxy": {
      "enabled": true,
      "server": "proxy.example.com:8080",
      "verifySSL": true,
      "rejectUnauthorized": true
    }
  }
}

Connection Encryption

{
  "browser": {
    "proxy": {
      "enabled": true,
      "server": "https://encrypted-proxy.example.com:8080",
      "tls": {
        "enabled": true,
        "version": "TLSv1.3"
      }
    }
  }
}

🧪 Testing & Debugging

Manual Tests

# Test proxy connection
curl --proxy proxy.example.com:8080 http://httpbin.org/ip

# Test with authentication
curl --proxy user:pass@proxy.example.com:8080 http://httpbin.org/ip

# Test geolocation
curl --proxy proxy.example.com:8080 http://ipinfo.io/json

Script Debug Mode

$env:DEBUG_PROXY=1; npm start

Health Check Script

#!/bin/bash
PROXY="proxy.example.com:8080"
curl --proxy $PROXY --connect-timeout 10 http://httpbin.org/status/200
echo "Proxy health: $?"

🛠️ Troubleshooting

Problem Error Solution
Connection Failed ECONNREFUSED Verify server address/port; check firewall
Auth Failed 407 Proxy Authentication Required Verify username/password; check IP whitelist
Timeout Request timeout Increase timeout values; try different server
SSL Error certificate verify failed Disable SSL verification; update certificates

Common Error Messages

Connection Issues

[ERROR] Proxy connection failed: ECONNREFUSED

Solutions:

  • Verify proxy server address and port
  • Check proxy server is running
  • Confirm firewall allows connections
  • Test with different proxy server

Authentication Issues

[ERROR] Proxy authentication failed: 407 Proxy Authentication Required

Solutions:

  • Verify username and password
  • Check account is active with provider
  • Confirm IP is whitelisted (if applicable)
  • Try different authentication method

Performance Issues

[ERROR] Proxy timeout: Request timeout

Solutions:

  • Increase timeout values
  • Check proxy server performance
  • Try different proxy server
  • Reduce concurrent connections

Performance Optimization

Connection Settings

{
  "browser": {
    "proxy": {
      "enabled": true,
      "server": "proxy.example.com:8080",
      "timeouts": {
        "connect": 30000,
        "request": 60000,
        "idle": 120000
      },
      "connectionPooling": true,
      "maxConnections": 10
    }
  }
}

Compression Settings

{
  "browser": {
    "proxy": {
      "enabled": true,
      "server": "proxy.example.com:8080",
      "compression": true,
      "gzip": true
    }
  }
}

Monitoring Metrics

  • Connection Success Rate — % of successful proxy connections
  • Response Time — Average request latency through proxy
  • Bandwidth Usage — Data transferred through proxy
  • Error Rate — % of failed requests via proxy

🐳 Container Integration

Docker Environment

# Dockerfile
ENV PROXY_ENABLED=true
ENV PROXY_SERVER=proxy.example.com:8080
ENV PROXY_USERNAME=user
ENV PROXY_PASSWORD=pass

Kubernetes ConfigMap

apiVersion: v1
kind: ConfigMap
metadata:
  name: rewards-proxy-config
data:
  proxy.json: |
    {
      "enabled": true,
      "server": "proxy.example.com:8080",
      "username": "user",
      "password": "pass"
    }

Environment-Specific

{
  "development": {
    "proxy": { "enabled": false }
  },
  "staging": {
    "proxy": {
      "enabled": true,
      "server": "staging-proxy.example.com:8080"
    }
  },
  "production": {
    "proxy": {
      "enabled": true,
      "server": "prod-proxy.example.com:8080"
    }
  }
}

📊 Best Practices

Proxy Selection

  • 🏆 Residential > Datacenter — Better for avoiding detection
  • 💰 Paid > Free — Reliability and security
  • 🔄 Multiple providers — Redundancy and failover
  • 🌍 Geographic diversity — Flexibility and compliance

Configuration Management

  • 🔑 Environment variables — Secure credential storage
  • 🧪 Test before deploy — Verify configuration works
  • 📊 Monitor performance — Track availability and speed
  • 🔄 Backup configs — Ready failover options

Security Guidelines

  • 🔒 HTTPS proxies — Encrypted connections when possible
  • 🛡️ SSL verification — Verify certificates
  • 🔄 Rotate credentials — Regular password updates
  • 👁️ Monitor access — Watch for unauthorized usage

Terms of Service

  • 📋 Review Microsoft's Terms of Service
  • 📄 Understand proxy provider's acceptable use policy
  • 🌍 Ensure compliance with local regulations
  • 🗺️ Consider geographic restrictions

Data Privacy

  • 🔍 Understand data flow through proxy
  • 📝 Review proxy provider's data retention policies
  • 🔐 Implement additional encryption if needed
  • 📊 Monitor proxy logs and access

Rate Limiting

  • ⏱️ Respect Microsoft's rate limits
  • ⏸️ Implement proper delays between requests
  • 🚦 Monitor for IP blocking or throttling
  • 🔄 Use proxy rotation to distribute load