mirror of
https://github.com/TheNetsky/Microsoft-Rewards-Script.git
synced 2026-01-11 19:06:18 +00:00
* 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.
611 lines
12 KiB
Markdown
611 lines
12 KiB
Markdown
# 🌐 Proxy Configuration
|
|
|
|
<div align="center">
|
|
|
|
**🔒 Route traffic through proxy servers for privacy and flexibility**
|
|
*Enhanced anonymity and geographic control*
|
|
|
|
</div>
|
|
|
|
---
|
|
|
|
## 🎯 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**
|
|
```json
|
|
{
|
|
"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**
|
|
```json
|
|
{
|
|
"browser": {
|
|
"proxy": {
|
|
"enabled": true,
|
|
"server": "http://proxy.example.com:8080",
|
|
"username": "user",
|
|
"password": "pass"
|
|
}
|
|
}
|
|
}
|
|
```
|
|
|
|
### **HTTPS Proxies**
|
|
**Encrypted proxy connections**
|
|
```json
|
|
{
|
|
"browser": {
|
|
"proxy": {
|
|
"enabled": true,
|
|
"server": "https://secure-proxy.example.com:8080",
|
|
"username": "user",
|
|
"password": "pass"
|
|
}
|
|
}
|
|
}
|
|
```
|
|
|
|
### **SOCKS Proxies**
|
|
**Support for SOCKS4 and SOCKS5**
|
|
```json
|
|
{
|
|
"browser": {
|
|
"proxy": {
|
|
"enabled": true,
|
|
"server": "socks5://socks-proxy.example.com:1080",
|
|
"username": "user",
|
|
"password": "pass"
|
|
}
|
|
}
|
|
}
|
|
```
|
|
|
|
---
|
|
|
|
## 🏢 Popular Proxy Providers
|
|
|
|
### **Residential Proxies (Recommended)**
|
|
**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**
|
|
```json
|
|
{
|
|
"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**
|
|
|
|
#### **Popular Providers**
|
|
- **SquidProxies** — Reliable performance
|
|
- **MyPrivateProxy** — Dedicated IPs
|
|
- **ProxyRack** — Budget-friendly
|
|
- **Storm Proxies** — Rotating options
|
|
|
|
#### **Configuration Example**
|
|
```json
|
|
{
|
|
"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)**
|
|
```json
|
|
{
|
|
"browser": {
|
|
"proxy": {
|
|
"enabled": true,
|
|
"server": "proxy.example.com:8080",
|
|
"username": "your-username",
|
|
"password": "your-password"
|
|
}
|
|
}
|
|
}
|
|
```
|
|
|
|
### **IP Whitelisting**
|
|
```json
|
|
{
|
|
"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**
|
|
```json
|
|
{
|
|
"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**
|
|
```json
|
|
{
|
|
"browser": {
|
|
"proxy": {
|
|
"enabled": true,
|
|
"server": "proxy.example.com:8080",
|
|
"bypass": [
|
|
"localhost",
|
|
"127.0.0.1",
|
|
"*.local",
|
|
"*.internal"
|
|
]
|
|
}
|
|
}
|
|
}
|
|
```
|
|
|
|
### **Specific Domains**
|
|
**Route certain domains directly**
|
|
```json
|
|
{
|
|
"browser": {
|
|
"proxy": {
|
|
"enabled": true,
|
|
"server": "proxy.example.com:8080",
|
|
"bypass": [
|
|
"*.microsoft.com",
|
|
"login.live.com",
|
|
"account.microsoft.com"
|
|
]
|
|
}
|
|
}
|
|
}
|
|
```
|
|
|
|
### **Advanced Patterns**
|
|
```json
|
|
{
|
|
"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**
|
|
```json
|
|
{
|
|
"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**
|
|
```json
|
|
{
|
|
"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**
|
|
```json
|
|
{
|
|
"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:**
|
|
```powershell
|
|
# Set in environment
|
|
$env:PROXY_USERNAME="your-username"
|
|
$env:PROXY_PASSWORD="your-password"
|
|
```
|
|
|
|
**Configuration:**
|
|
```json
|
|
{
|
|
"browser": {
|
|
"proxy": {
|
|
"enabled": true,
|
|
"server": "proxy.example.com:8080",
|
|
"username": "${PROXY_USERNAME}",
|
|
"password": "${PROXY_PASSWORD}"
|
|
}
|
|
}
|
|
}
|
|
```
|
|
|
|
### **HTTPS Verification**
|
|
```json
|
|
{
|
|
"browser": {
|
|
"proxy": {
|
|
"enabled": true,
|
|
"server": "proxy.example.com:8080",
|
|
"verifySSL": true,
|
|
"rejectUnauthorized": true
|
|
}
|
|
}
|
|
}
|
|
```
|
|
|
|
### **Connection Encryption**
|
|
```json
|
|
{
|
|
"browser": {
|
|
"proxy": {
|
|
"enabled": true,
|
|
"server": "https://encrypted-proxy.example.com:8080",
|
|
"tls": {
|
|
"enabled": true,
|
|
"version": "TLSv1.3"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
```
|
|
|
|
---
|
|
|
|
## 🧪 Testing & Debugging
|
|
|
|
### **Manual Tests**
|
|
```bash
|
|
# 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**
|
|
```powershell
|
|
$env:DEBUG_PROXY=1; npm start
|
|
```
|
|
|
|
### **Health Check Script**
|
|
```bash
|
|
#!/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**
|
|
```json
|
|
{
|
|
"browser": {
|
|
"proxy": {
|
|
"enabled": true,
|
|
"server": "proxy.example.com:8080",
|
|
"timeouts": {
|
|
"connect": 30000,
|
|
"request": 60000,
|
|
"idle": 120000
|
|
},
|
|
"connectionPooling": true,
|
|
"maxConnections": 10
|
|
}
|
|
}
|
|
}
|
|
```
|
|
|
|
### **Compression Settings**
|
|
```json
|
|
{
|
|
"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
|
|
# Dockerfile
|
|
ENV PROXY_ENABLED=true
|
|
ENV PROXY_SERVER=proxy.example.com:8080
|
|
ENV PROXY_USERNAME=user
|
|
ENV PROXY_PASSWORD=pass
|
|
```
|
|
|
|
### **Kubernetes ConfigMap**
|
|
```yaml
|
|
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**
|
|
```json
|
|
{
|
|
"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
|
|
|
|
---
|
|
|
|
## ⚖️ Legal & Compliance
|
|
|
|
### **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
|
|
|
|
---
|
|
|
|
## 🔗 Related Guides
|
|
|
|
- **[Getting Started](./getting-started.md)** — Initial setup and configuration
|
|
- **[Security](./security.md)** — Privacy and data protection
|
|
- **[Docker](./docker.md)** — Container deployment with proxies
|
|
- **[Humanization](./humanization.md)** — Natural behavior patterns |