inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

해외취업 ASP.NET Core 웹개발 기본 강좌

모델 바인딩

바인딩에 관하여.

254

luminary282

작성한 질문수 2

2

Student클래스에서

겨우 Student객체의 Name메소드의 getter, setter를 작성했는데 다시 그걸 BindNever를통해 입력을 받지 않는 이유가 무엇인가요?? 경우에따라 취사 선택하여 데이터를 받기 위함인가요???

ASP.NET-Core

답변 1

4

SEJONG IT EDU

안녕하세요.

네 맞습니다. 경우에 따라 선택가능한 데이터만 받기 위한건데요. 강좌에서는 자세한 설명을 하지 않았지만 BindNever 쓰는 것 자체가 해커의 오버포스팅(Over-Posting) 공격을 막기 위함입니다.

가정을 해봅시다.

현재 우리 Student 페이지에 존재하는 세 필드들이 있습니다. Name, Age, Country가 있는데요.

이 중 Country 필드가 더 이상 데이터베이스에 저장할 필요가 없어져서 Html에서 뺐다고 하겠습니다.

하지만 해커는 페이지에 Country 필드가 사라졌다고해서 이 값을 서버로 못보내는게 아닙니다.

포스트맨/피들러 같은 툴 또는 간단한 자바스크립트 코드를 통해서 서버로 Country 값까지 악의적으로 보낼 수 있어요.

우리는 분명 Country 값이 필요없어져서 차단을 시켜야되는데 서버에서는 일단 HttpPost요청을 통해서 Country 값까지 들어왔으니 어쩔 수 없이 Country 값까지 데이터베이스에 저장하게 되는겁니다. 물론 기타 방법들을 통해 또 가려내는 방법이 있겠지만 어쨌거나 코드는 간결해야되어서 최대한 간단한 코드를 통해 차단을 시키는 겁니다. 그게 바로 BindNever가 되겠죠.

상황에 따라 차단(BindNever)을 해야 될 데이터 또는 무조건 받아야(Bind) 할 데이터가 있기 때문에 쓰게 되는 거구요.

마이그레이션 오류

0

329

0

Identity 관련 질문

0

278

0

net core 2.1 버전에는 없는건가요

0

299

0

Identity 계정 생성 로직 강의에서 Register() 함수 호출 오류 문의

0

395

1

DbContext 상속

0

292

0

razor syntax 질문

0

341

0

마이그레이션 문제 질문

0

355

1

강의할때 코드 크게 보여주실수 있나요 ...

0

332

1

윈도우 10에서 배포하는 방법 문의

0

263

0

UseSqlServer 오류

0

1047

5

[Authorize] 헤더

0

257

1

dotnet ef database update 문제

0

224

0

MVC 패턴 순서

0

298

0

폴더명은 항상 정해져있나요?

0

215

0

HTTP Error 500.30 - ANCM In-Process Start Failure

0

1199

2

Add 함수와 Save를 따로 만드는 이유가 있을까요?

0

291

1

UseMvc 안됨(core 3.0)

0

410

4

값이 넘어왔는지 찍어보는 거요..

1

329

3

널참조 에러

0

371

1

ValidateAntiForgeryToken를 쓰는 이유

0

865

3

아무리 해도 안되네요.

0

312

3

sqlserver가 MSSQLLocalDB가 없어요

0

253

1

AddScoped, AddTransient, AddSingleton 차이점

0

701

1

엔티티 프레임워크를 아마존 rds랑 연동하고 싶습니다.

0

187

1