git 무차별 공격 대비용 임시 방어조치

This commit is contained in:
김판돌 2024-08-24 19:58:47 +09:00
parent 443b16a8b0
commit fc28b9fd0d
1 changed files with 12 additions and 21 deletions

View File

@ -10,43 +10,34 @@ namespace Server.System
public static Thread thread; public static Thread thread;
private static AbstractGit git; private static AbstractGit git;
public static ErrorResp successResp;
public static async Task<string> Process(HttpContext context) public static async Task<string> Process(HttpContext context)
{ {
//TODO 아무때나 호출되지 않게 만들기
string Response; string Response;
try try
{ {
string eaDelivery = context.Request.Headers["X-Gitea-Delivery"]; string eaDelivery = context.Request.Headers["X-Gitea-Delivery"];
string eaEvent = context.Request.Headers["X-Gitea-Event"];
string eaEventType = context.Request.Headers["X-Gitea-Event-Type"];
string eaSignature = context.Request.Headers["X-Gitea-Signature"];
Console.WriteLine($"X-Gitea-Delivery : {eaDelivery}"); logger.Info($"SaveVersion : {eaDelivery}");
Console.WriteLine($"X-Gitea-Event : {eaEvent}");
Console.WriteLine($"X-Gitea-Event-Type : {eaEventType}");
Console.WriteLine($"X-Gitea-Signature : {eaSignature}");
//task를 쓰면 멈출수가 없기에 thread를 사용 Response = successResp.ToJson();
if (thread.ThreadState == ThreadState.Unstarted)
{ //무작위 공격을 대비한 1차적인 방어조치
thread.Start(); if (eaDelivery == "" || eaDelivery.Length < 15)
} return Response;
else if (thread.ThreadState == ThreadState.Stopped)
if (thread.ThreadState == ThreadState.Stopped)
{ {
logger.Info("new excel update");
thread = new Thread(git.Init); thread = new Thread(git.Init);
thread.Start(); thread.Start();
} }
else if (thread.ThreadState == ThreadState.WaitSleepJoin || thread.ThreadState == ThreadState.Running) else if (thread.ThreadState == ThreadState.WaitSleepJoin || thread.ThreadState == ThreadState.Running)
{ {
logger.Info("new excel restart");
git.isRestart = true; git.isRestart = true;
} }
ErrorResp error = new ErrorResp();
error.status = 200;
error.message = "Success";
Response = error.ToJson();
} }
catch (RuntimeException ex) catch (RuntimeException ex)
{ {