Q: 테스트코드에서 setup 함수와 setupclass의 차이는 무엇입니까?
A:
The difference manifests itself when you have more than one test method in your class. setUpClass and tearDownClass are run once for the whole class; setUp and tearDown are run before and after each test method.
Q: Template Engine을 사용할 때, 발생하는 CSRF Error가 무엇이고 어떻게 해결합니까?
A:
What is CSRF?
CSRF is an acronym for Cross-Site Request Forgery. It is a vector of attack that attackers commonly use to get into your system.
The way you usually protect against CSRF is to send a unique token generated by each HTTP request. If the token that is on the server doesn't match with the one from the request, you show an error to the user.
https://www.freecodecamp.org/news/csrf-protection-problem-and-how-to-fix-it/
Cross-Site Request Forgery
사이트 간 요청 위조의 줄임말.
웹 애플리케이션 취약점 중 하나로 사용자가 자신의 의지와 무관하게 공격자가 의도한 행동을 해서 특정 웹페이지를 보안에 취약하게 한다거나 수정, 삭제 등의 작업을 하게 만드는 공격 방법이다.
2. CSRF 토큰?
Django Framework는 form tag로 데이터를 전송할 때 필수로 {% csrf_token %} 코드를 요구한다.
CSRF는 Cross-site Request Forgery의 약자이다.
사이트 간 위조 요청 정도로 해석할 수 있다.
csrf_token의 작동 원리는 다음과 같다.
서버는 클라이언트의 세션에 무작위 난수를 저장한다.
이후 클라이언트가 {% csrf_token %} 코드를 포함한 모든 request에 대해
서버에 저장된 난수 값과 클라이언트 세션에 저장된 난수 값이 동일한지 확인한다.
따라서 위조된 페이지는 서버가 발행한 token값이 일치하지 않으므로 접근이 불가능하다.
이러한 보안 시스템을 무력화시키기 위해서는
정상 발행된 페이지에서 token값을 탈취 한 이후 새로고침 되어 token 값이 교체되기 전에
위조된 페이지를 만들어 접근해야 하며 이를 위해서는 까다로운 기술이 필요하다고 한다.
https://todoist.com/ko/help/articles/csrf-token-error-messages
'TIL' 카테고리의 다른 글
TIL 072723 (0) | 2023.07.27 |
---|---|
TIL 072623 (0) | 2023.07.26 |
TIL 072423 (0) | 2023.07.24 |
TIL 072123 (0) | 2023.07.24 |
TIL 072023 (0) | 2023.07.20 |