백엔드 개발 C++ 무단 요청으로부터 API를 보호하는 방법

무단 요청으로부터 API를 보호하는 방법

Apr 03, 2025 pm 08:12 PM
ai red

무단 요청으로부터 API를 보호하는 방법

API는 다른 시스템을 연결하는 최신 애플리케이션의 핵심입니다. 그러나 그들은 또한 무단 액세스 및 악의적 인 착취에 취약합니다. API를 보호하려면 CORS 인증, 강력한 인증 및 실시간 모니터링을 포함한 여러 보안 정책이 필요합니다. 이 기사는 신뢰할 수있는 클라이언트 만 API에 액세스 할 수 있도록 몇 가지 방법을 설명합니다.

1. CORS를 올바르게 구성하십시오

CORS (Cross-Domain Resource Sharing)는 API와 상호 작용할 수있는 소스를 제어하는 ​​주요 보안 메커니즘입니다. CORS의 올바른 구성은 효과적으로 무단 액세스를 방지 할 수 있습니다.

ASP.NET 코어 예 :

 <code class="csharp">builder.Services.AddCors(options => { options.AddPolicy("RestrictedOrigins", policy => { policy.WithOrigins("https://mywebsite.com", "https://trustedpartner.com") // 允许的来源.AllowAnyHeader() .AllowAnyMethod(); }); }); // 应用CORS策略app.UseCors("RestrictedOrigins");</code>
로그인 후 복사

중요한 규칙 :

  • AllowAnyOrigin 피하십시오 : 모든 출처를 허용하면 API 위험이 크게 증가합니다.
  • IsOriginAllowed(_ => true) 사용하지 마십시오 : 이것은 소스 확인을 완전히 우회합니다.
  • 메소드 및 헤더 제한 : AllowAnyMethod 제한하고 허용 범위를 필요한 범위로 AllowAnyHeader .

2. 신원 확인 및 승인을 구현합니다

인증을 통해 승인 된 사용자 또는 시스템 만 API 엔드 포인트에 액세스 할 수 있습니다. JWT (JSON Web Token)는 일반적으로 사용되는 방법입니다.

JWT 구현 단계 :

  1. 클라이언트는 요청 헤더에서 JWT를 보냅니다.
 <code>Authorization: Bearer <your-jwt-token></your-jwt-token></code>
로그인 후 복사
  1. 서버 측 확인 토큰 :
 <code class="csharp">app.UseAuthentication(); app.UseAuthorization();</code>
로그인 후 복사

ASP.NET 코어 구성 예 :

 <code class="csharp">builder.Services.AddAuthentication("Bearer") .AddJwtBearer(options => { options.TokenValidationParameters = new TokenValidationParameters { ValidateIssuer = true, ValidateAudience = true, ValidateLifetime = true, ValidateIssuerSigningKey = true, ValidIssuer = "https://mywebsite.com", ValidAudience = "https://mywebsite.com", IssuerSigningKey = new SymmetricSecurityKey(Encoding.UTF8.GetBytes("secret-key")) }; });</code>
로그인 후 복사

3. 원점 헤더를 명시 적으로 확인하십시오

CORS가 구성된 경우에도 서버 측 미들웨어에서 Origin 헤더를 수동으로 확인하여 추가 보안 계층을 추가 할 수 있습니다.

예:

 <code class="csharp">app.Use(async (context, next) => { string origin = context.Request.Headers["Origin"].ToString(); string[] allowedOrigins = { "https://mywebsite.com", "https://trustedpartner.com" }; if (!string.IsNullOrEmpty(origin) && !allowedOrigins.Contains(origin)) { context.Response.StatusCode = StatusCodes.Status403Forbidden; await context.Response.WriteAsync("Origin not allowed."); return; } await next(); });</code>
로그인 후 복사

4. 의심스러운 IP를 차단하십시오

공격 표면을 줄이기 위해 알려진 악성 IP 주소의 요청을 필터링하고 차단합니다.

미들웨어 예 :

 <code class="csharp">app.Use(async (context, next) => { string clientIp = context.Connection.RemoteIpAddress?.ToString(); string[] blockedIPs = { "192.168.1.100", "10.0.0.50" }; if (blockedIPs.Contains(clientIp)) { context.Response.StatusCode = StatusCodes.Status403Forbidden; await context.Response.WriteAsync("Blocked IP."); return; } await next(); });</code>
로그인 후 복사

5. 구현 속도 제한

학대 및 무차별 적 공격을 방지하기위한 고객 요청 수를 제한하십시오.

ASP.NET 코어 예 :

설치 패키지 :

 <code class="bash">dotnet add package AspNetCoreRateLimit</code>
로그인 후 복사

구성 속도 제한 :

 <code class="csharp">builder.Services.AddMemoryCache(); builder.Services.Configure<ipratelimitoptions>(options => { options.GeneralRules = new List<ratelimitrule> { new RateLimitRule { Endpoint = "*", Limit = 100, // 请求限制Period = "1m" // 每分钟} }; }); builder.Services.AddInMemoryRateLimiting(); app.UseIpRateLimiting();</ratelimitrule></ipratelimitoptions></code>
로그인 후 복사

6. 모든 연결은 https를 사용합니다

HTTPS에게 클라이언트와 API 간의 안전한 통신을 보장합니다.

ASP.NET Core에서 HTTPS 구성 :

 <code class="csharp">webBuilder.UseKestrel() .UseHttps();</code>
로그인 후 복사

HTTP 트래픽을 HTTPS로 리디렉션합니다.

 <code class="csharp">app.UseHttpsRedirection();</code>
로그인 후 복사

7. 요청을 모니터링하고 기록합니다

로깅 구현, 알 수없는 소스의 많은 요청과 같은 예외 패턴을 감지하십시오.

예:

 <code class="csharp">app.Use(async (context, next) => { string origin = context.Request.Headers["Origin"].ToString(); Console.WriteLine($"Request from origin: {origin}"); await next(); });</code>
로그인 후 복사

포괄적 인 모니터링을 위해 애플리케이션 통찰력, Serilog 또는 Elastic Stack과 같은 도구를 사용하십시오.

8. 자세한 오류 응답을 피하십시오

오류 메시지에 민감한 정보를 노출시키지 않으면 공격자에게 도움이됩니다.

예:

 <code class="csharp">app.UseExceptionHandler("/error"); // 将错误重定向到安全页面</code>
로그인 후 복사

결론적으로

무단 요청으로부터 API를 보호하려면 여러 계층의 방어 계층이 필요합니다. CORS를 올바르게 구성하고, 소스 및 헤더를 명시 적으로 확인하고, 인증 및 속도 제한을 구현하고, HTTPS 사용 및 트래픽을 모니터링합니다. 이러한 모범 사례에 따라 무단 액세스의 위험을 크게 줄일 수있어 신뢰할 수있는 고객 만 API에 액세스 할 수 있습니다.

위 내용은 무단 요청으로부터 API를 보호하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

인기 기사

R.E.P.O. 에너지 결정과 그들이하는 일 (노란색 크리스탈)
1 몇 달 전 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 최고의 그래픽 설정
1 몇 달 전 By 尊渡假赌尊渡假赌尊渡假赌
Will R.E.P.O. 크로스 플레이가 있습니까?
1 몇 달 전 By 尊渡假赌尊渡假赌尊渡假赌

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

Centos Shutdown 명령 줄 Centos Shutdown 명령 줄 Apr 14, 2025 pm 09:12 PM

CentOS 종료 명령은 종료이며 구문은 종료 [옵션] 시간 [정보]입니다. 옵션은 다음과 같습니다. -H 시스템 중지 즉시 옵션; -P 종료 후 전원을 끕니다. -R 다시 시작; -대기 시간. 시간은 즉시 (현재), 분 (분) 또는 특정 시간 (HH : MM)으로 지정할 수 있습니다. 추가 정보는 시스템 메시지에 표시 될 수 있습니다.

Centos에서 Gitlab의 백업 방법은 무엇입니까? Centos에서 Gitlab의 백업 방법은 무엇입니까? Apr 14, 2025 pm 05:33 PM

CentOS 시스템 하에서 Gitlab의 백업 및 복구 정책 데이터 보안 및 복구 가능성을 보장하기 위해 CentOS의 Gitlab은 다양한 백업 방법을 제공합니다. 이 기사는 완전한 GITLAB 백업 및 복구 전략을 설정하는 데 도움이되는 몇 가지 일반적인 백업 방법, 구성 매개 변수 및 복구 프로세스를 자세히 소개합니다. 1. 수동 백업 gitlab-rakegitlab : 백업 : 명령을 작성하여 수동 백업을 실행하십시오. 이 명령은 gitlab 저장소, 데이터베이스, 사용자, 사용자 그룹, 키 및 권한과 같은 주요 정보를 백업합니다. 기본 백업 파일은/var/opt/gitlab/backups 디렉토리에 저장됩니다. /etc /gitlab을 수정할 수 있습니다

Centos에서 Zookeeper의 성능을 조정하는 방법은 무엇입니까? Centos에서 Zookeeper의 성능을 조정하는 방법은 무엇입니까? Apr 14, 2025 pm 03:18 PM

CentOS에 대한 Zookeeper Performance Tuning은 하드웨어 구성, 운영 체제 최적화, 구성 매개 변수 조정, 모니터링 및 유지 관리 등 여러 측면에서 시작할 수 있습니다. 특정 튜닝 방법은 다음과 같습니다. SSD는 하드웨어 구성에 권장됩니다. Zookeeper의 데이터는 디스크에 작성되므로 SSD를 사용하여 I/O 성능을 향상시키는 것이 좋습니다. 충분한 메모리 : 자주 디스크 읽기 및 쓰기를 피하기 위해 충분한 메모리 리소스를 동물원에 충분한 메모리 자원을 할당하십시오. 멀티 코어 CPU : 멀티 코어 CPU를 사용하여 Zookeeper가이를 병렬로 처리 할 수 ​​있도록하십시오.

Centos HDFS 구성을 확인하는 방법 Centos HDFS 구성을 확인하는 방법 Apr 14, 2025 pm 07:21 PM

CentOS 시스템에서 HDFS 구성 확인에 대한 완전한 안내서이 기사에서는 CentOS 시스템에서 HDF의 구성 및 실행 상태를 효과적으로 확인하는 방법을 안내합니다. 다음 단계는 HDF의 설정 및 작동을 완전히 이해하는 데 도움이됩니다. Hadoop 환경 변수 확인 : 먼저 Hadoop 환경 변수가 올바르게 설정되어 있는지 확인하십시오. 터미널에서 다음 명령을 실행하여 Hadoop이 올바르게 설치되고 구성되었는지 확인하십시오. Hadoopversion Check HDFS 구성 파일 : HDFS의 Core 구성 파일은/etc/hadoop/conf/directory에 있으며 Core-Site.xml 및 HDFS-Site.xml이 중요합니다. 사용

HDFS 구성 센터에서 어떤 파일을 수정해야합니까? HDFS 구성 센터에서 어떤 파일을 수정해야합니까? Apr 14, 2025 pm 07:27 PM

CentOS에서 HDFS (Hadoop 분산 파일 시스템)를 구성 할 때 다음 주요 구성 파일을 수정해야합니다. core-site.xml : fs.defaultfs : hdfs : // localhost : 9000과 같은 HDFS의 기본 파일 시스템 주소를 지정합니다. Hadoop.tmp.dir : Hadoop 임시 파일의 스토리지 디렉토리를 지정합니다. hadoop.proxyuser.root.hosts 및 hadoop.proxyuser.ro

Centos에서 Pytorch 모델을 훈련시키는 방법 Centos에서 Pytorch 모델을 훈련시키는 방법 Apr 14, 2025 pm 03:03 PM

CentOS 시스템에서 Pytorch 모델을 효율적으로 교육하려면 단계가 필요 하며이 기사는 자세한 가이드를 제공합니다. 1. 환경 준비 : 파이썬 및 종속성 설치 : CentOS 시스템은 일반적으로 파이썬을 사전 설치하지만 버전은 더 오래 될 수 있습니다. YUM 또는 DNF를 사용하여 Python 3 및 Upgrade Pip : Sudoyumupdatepython3 (또는 SudodnfupdatePython3), PIP3INSTALL-UPGRADEPIP를 설치하는 것이 좋습니다. CUDA 및 CUDNN (GPU 가속도) : NVIDIAGPU를 사용하는 경우 Cudatool을 설치해야합니다.

Centos에서 Pytorch에 대한 GPU 지원은 어떻습니까? Centos에서 Pytorch에 대한 GPU 지원은 어떻습니까? Apr 14, 2025 pm 06:48 PM

CentOS 시스템에서 Pytorch GPU 가속도를 활성화하려면 Cuda, Cudnn 및 GPU 버전의 Pytorch를 설치해야합니다. 다음 단계는 프로세스를 안내합니다. CUDA 및 CUDNN 설치 CUDA 버전 호환성 결정 : NVIDIA-SMI 명령을 사용하여 NVIDIA 그래픽 카드에서 지원하는 CUDA 버전을보십시오. 예를 들어, MX450 그래픽 카드는 CUDA11.1 이상을 지원할 수 있습니다. Cudatoolkit 다운로드 및 설치 : NVIDIACUDATOOLKIT의 공식 웹 사이트를 방문하여 그래픽 카드에서 지원하는 가장 높은 CUDA 버전에 따라 해당 버전을 다운로드하여 설치하십시오. CUDNN 라이브러리 설치 :

Centos에서 HDFS 파일 시스템을 사용하기위한 팁 Centos에서 HDFS 파일 시스템을 사용하기위한 팁 Apr 14, 2025 pm 07:30 PM

CentOS 시스템 하의 HDFS 파일 시스템에 대한 설치, 구성 및 최적화 안내서이 기사에서는 CentOS 시스템에 HDF (Hadoop Distributed File System)를 설치, 구성 및 최적화하는 방법을 안내합니다. HDFS 설치 및 구성 Java 환경 설치 : 먼저 적절한 Java 환경이 설치되어 있는지 확인하십시오. /etc/profile 파일 편집, 다음을 추가하고 /usr/lib/java-1.8.0/jdk1.8.0_144를 실제 Java 설치 경로로 바꾸십시오 : Exportjava_home =/usr/lib/java-1.8.0/jdk1.8.0_144 exportpath = $ j

See all articles