inflearn logo
강의

講義

知識共有

Djangoフレームワークを正しく学ぶPart.2

データベース Article 入力

csrf 토큰을지정했는데 가끔가다 403오류가 뜨는데 왜그러죠?

408

eastlightd903699

投稿した質問数 29

0

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title>Memmo Write Form</title>
        <style>
            form > label{
                display: inline-block;
                width: 120px;
            }
            form > input{
                padding : 4px;
                margin-bottom : 4px;
            }
        </style>
    </head>
    <body>
        <h1>Onememo Form</h1>
        <form action="http://localhost:8000/onememos/createMemo/" method="POST" id="memoWriteForm">
            {%csrf_token%}
            <label for="memo">한줄메모</label>
            <input type="text" id="memo" name="memoContent" size="100" placeholder="내용을 입력해주세요." autocomplete="off">
            <br>
            <label for="memo">이름</label>
            <input type="text" id="memo" name="memoName" size="100" placeholder="내용을 입력해주세요." autocomplete="off">
            <br>
            <label for="memo">이메일</label>
            <input type="text" id="memo" name="memoEmail" size="100" placeholder="내용을 입력해주세요." autocomplete="off">
            <br>
        </form>
        <div>
        <button type="submit" form="memoWriteForm">등록</button>
        </div>                
    </body>
</html>

django

回答 1

0

communityai8509

안녕하세요, 인프런 AI 인턴입니다.
동휘김님, CSRF 토큰을 지정하셨음에도 가끔 403 오류가 발생하는 이유로는 몇 가지 상황을 고려해볼 수 있습니다.

  1. 서버 측에서 CSRF 토큰이 올바르게 검증되지 않는 경우입니다. 예를 들어, 세션의 만료 혹은 불일치로 인해 발생할 수 있습니다.
  2. 브라우저가 CSRF 토큰을 올바르게 전송하지 않는 경우로, 폼 전송 시 CSRF 토큰 값이 포함되지 않거나 잘못된 값을 전송할 수 있습니다.
  3. Spring Boot와 같은 프레임워크를 사용하는 경우, 기본적으로 CSRF 보호가 활성화되어있어 POST, PUT, DELETE 요청에 대한 보안 조치로 생길 수 있습니다. 이 경우, 비브라우저 클라이언트를 위해 CSRF 보호를 비활성화하는 설정을 고려할 수 있습니다.

자세한 내용은 Spring Security Reference Guide에서 CSRF 보호 관련 추가 정보를 확인하실 수 있습니다.
Spring Security Reference Guide - CSRF Protection
출처

CSRF 토큰 이슈는 때로 복잡할 수 있으니, 서버 로그 검토와 브라우저 네트워크 분석으로 정확한 원인을 파악하시는 것이 좋습니다.

0

eastlightd903699

AI 인턴 이 마치 chat gpt 통해서 답변하는것같네여..내용이 똑같네여..말씀해주신내용으로 다 해봤는데도 안되네여

진도미확인 (진도가 안 넘어감)

0

41

1

자료 화면 문의

0

40

1

(질문)KG이니시스 팝업차단 문제 발생(강의 13. 자바스크립트만으로 포트원 결제 구현하기, 7분18초)

1

163

2

강의에 나왔던 js 파일이 깃허브에 없습니다

1

67

1

RuntimeError: There is no current event loop in thread 'MainThread'

0

84

1

chapter 07-01 실행 오류

0

67

1

DOCKER 설치 관련 질문입니다

0

91

2

Chapter05-04 : sum_func의 합이 이중 출력됩니다.

0

78

2

안녕하세요.

0

48

1

asgi 를 elasticbeanstalk 으로 배포는 어떻게 할수 있을까요?

0

84

1

모바일 디버깅, 반응형 레이아웃 4분48초 질문

0

45

1

AI 도구 학습법 문의

0

85

2

45. 병렬성 2 - Futures(5-1) wait가 의도된 대로 동작하지 않습니다.

0

93

2

멀티스레딩 - 44. 병렬성 1 - Futures(4-2)

0

71

2

chapter05_02 클로저 질문사항 !

0

53

1

ConnectionRefusedError: [WinError 10061]

0

100

2

CSRF_COOKIE_NAME에러

0

80

2

Django의 View나 URL의 네이밍 컨벤션

0

61

1

Dockerfile 질문

0

76

2

decorator 관련질문입니다.

0

51

1

로그인 오류

0

74

2

PRINT_SQL=1 py manage.py shell 에러

0

74

2

idx값을 가져올 때 views.py에서 매개변수 형태로 가져오는 것과 idx = request.POST['idx'] 형태로 가져오는 것의 차이를 모르겠습니다.

0

269

1

분기처리하는 내용에서 질문입니다.

0

421

1