Skip to content

Commit 4014368

Browse files
authored
Merge pull request #85 from LaGodxy/feature/input-validation-security-fees-stellar
Feature/input validation security fees stellar
2 parents 3979bde + 9cbcfbd commit 4014368

27 files changed

Lines changed: 4369 additions & 1 deletion

.env.example

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,3 +2,28 @@
22
PORT=3000
33
NODE_ENV=development
44

5+
# CORS Configuration
6+
# Comma-separated list of allowed origins for production
7+
CORS_ALLOWED_ORIGINS=https://app.currentdao.com,https://www.currentdao.com
8+
9+
# Development-specific CORS origins (optional)
10+
CORS_DEV_ORIGINS=http://localhost:4200,http://localhost:8080
11+
12+
# Staging-specific CORS origins (optional)
13+
CORS_STAGING_ORIGINS=https://staging.currentdao.com
14+
15+
# Security Configuration
16+
# API rate limiting (requests per minute)
17+
RATE_LIMIT_TTL=60
18+
RATE_LIMIT_MAX=100
19+
20+
# Session configuration
21+
SESSION_SECRET=your-super-secret-session-key-change-in-production
22+
23+
# Helmet security (automatically configured based on NODE_ENV)
24+
# HSTS max-age in seconds (default: 31536000 for production)
25+
HSTS_MAX_AGE=31536000
26+
27+
# Content Security Policy report URI
28+
CSP_REPORT_URI=/api/csp-report
29+

src/app.module.ts

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import { AssetModule } from './assets/asset.module';
2-
import { Module } from '@nestjs/common';
2+
import { Module, NestMiddleware, MiddlewareConsumer, RequestMethod } from '@nestjs/common';
33
import { ConfigModule, ConfigType } from '@nestjs/config';
44
import { TypeOrmModule } from '@nestjs/typeorm';
55
import { ScheduleModule } from '@nestjs/schedule';
@@ -8,6 +8,9 @@ import stellarConfig from './config/stellar.config';
88
import { AppController } from './app.controller';
99
import { HealthController } from './health.controller';
1010
import { AppService } from './app.service';
11+
import { SecurityMiddleware } from './middleware/security.middleware';
12+
import { helmetMiddleware, validateSecurityConfig } from './config/security.config';
13+
import { corsConfig, validateCorsConfig } from './config/cors.config';
1114
import { MarketForecastingModule } from './forecasting/market-forecasting.module';
1215
import { RiskManagementModule } from './risk/risk-management.module';
1316
import { CrossBorderModule } from './cross-border/cross-border.module';
@@ -21,6 +24,8 @@ import { MonitoringModule } from './monitoring/monitoring.module';
2124
import { SentimentModule } from './sentiment/sentiment.module';
2225
import { ResponseInterceptor } from './common/interceptors/response.interceptor';
2326
import { HttpExceptionFilter } from './common/filters/http-exception.filter';
27+
import { ValidationExceptionFilter } from './common/filters/validation.filter';
28+
import { ValidationPipe } from './common/pipes/validation.pipe';
2429
import { FraudDetectionModule } from './fraud/fraud-detection.module';
2530
import { PredictiveBalancingModule } from './balancing/predictive-balancing.module';
2631
import { SyncModule } from './sync/sync.module';

0 commit comments

Comments
 (0)