백엔드로 django를 사용하는 몇 가지 모바일 앱을 만들었지 만 이제는 Chrome 확장 프로그램에서 작업하고 있습니다. 내 사용자가 app/extension을 사용하여 서버에 POST 요청을 보낼 수있게하려면 먼저 서버에 CSRF 토큰을 요청하지 않고이를 수행 할 수있는 방법이 있습니까? 그것은 단지 우리가 데이터를 제출하기를 원할 때마다 두 가지 요청을하는 것을 막아줍니다. 예를 들어 소셜 미디어 앱에서 내 프로필을 업데이트하거나 Chrome 확장 프로그램에서 지갑을 업데이트하고 싶습니다. 프로필보기를 열어서 데이터를 입력하고 서버로 푸시하는 것이 좋을 것입니다. 프로필을 열어야하는 경우 매끄럽지 않으며 서버에서 토큰을 가져올 때까지 기다렸다가 데이터를 제출할 수 있습니다. 이것을 할 또 다른 방법이 있습니까? 아니면 데이터를 제출할 때마다 여러 번 요청을 받겠습니까?Django 모바일 앱 및 크롬 확장에 대한 CSRF 보호
또한 CSRF는 사이트가 사용자 데이터로 양식을 제출하지 못하게합니다. 하지만 아약스 등을 사용하여 실제 사이트를 포착하고 CSRF 토큰을 훔쳐서 내 크로스 사이트 요청 양식에 붙여 넣을 수있는 사이트를 만들지 못하게하는 것은 무엇입니까? 여기에 허점이있는 것처럼 느껴집니다. 나는이 모든 것을 완전히 이해하지 못한다는 것을 안다.
그래서 csrf_exempt를 지정하면 csrf 토큰이 필요하지 않습니다. 앱에 대한 백엔드 용으로 사용하고 실제 페이지를 제공하지 않으면 미들웨어 권한을 사용 중지 할 수 있습니까? 나는 오늘 csrf에 대해 많은 책을 읽었습니다. (나는 이전에 그것을 이해했다고 생각했지만 분명히 그렇지 않다고 생각했습니다.) CSRF는 사람들이 사용자 세션을 유지하려고 시도하는 가짜 사이트를 만들지 못하도록 막는 것입니다. –
CSRF는 세션 고정 공격에 사용될 수 있습니다. 그러나 다른 공격도 가능합니다. 당신이 만들고 API 만 있다면 CSRF 미들웨어를 제거 할 수 있습니다. 대신 모든 요청은 어떤 방법으로 인증되어야합니다. 예 : 토큰 또는 자격 증명. – EWit