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