Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Xử lý CSRF theo cách chuẩn #207

Open
kc97ble opened this issue Nov 2, 2020 · 4 comments
Open

Xử lý CSRF theo cách chuẩn #207

kc97ble opened this issue Nov 2, 2020 · 4 comments
Labels
enhancement improvement for existing feature medium priority

Comments

@kc97ble
Copy link
Collaborator

kc97ble commented Nov 2, 2020

Hiện tại, ta đang dùng một cái middleware để vô hiệu hóa CSRF đối với một số request.

project/app/middleware.py:
  42  
  43: class RestAPICsrfMiddleware(CsrfViewMiddleware):
  44: 
  45:     def process_view(self, request, callback, callback_args, callback_kwargs):
  46:         """Django restful admin -> skip csrf check.
  47:         """
  48: 
  49:         app_name = resolve(request.path_info).app_name
  50:         if app_name == 'django_restful_admin':
  51:             return self._accept(request)
  52:         else:
  53:             # Origin csrf token check for other routes
  54:             return super(RestAPICsrfMiddleware, self).process_view(
  55:                 request, callback, callback_args, callback_kwargs
  56:             )
  57: 

Đây chỉ là giải pháp tạm thời, cần được xử lý theo cách chuẩn.

Mời các anh em vào bàn luận tìm giải pháp ạ.

@kc97ble kc97ble added enhancement improvement for existing feature medium priority labels Nov 3, 2020
@baonq-me
Copy link

baonq-me commented Nov 4, 2020

Anh có thể nói thêm như thế nào gọi là cách chuẩn nên làm được không anh ?

@dangquangdon
Copy link
Contributor

Tạo sao mình lại cần cái này nhỉ, bạn giải thích cụ thể hơn được ko?

@kc97ble
Copy link
Collaborator Author

kc97ble commented Nov 6, 2020

Đây là một cách hack, tạm thời bỏ qua CSRF với một số request để cho trang web chạy được.

@dangquangdon "Nghe đồn" thì nếu bỏ middleware này, sẽ bị lỗi CSRF token invalid.

@DungDA Anh có nhớ tại sao code đoạn code này k ạ? Nếu bỏ đi thì có sao không ạ?

@quoccuong19
Copy link

Nếu là Restful thì phải xài token_code, chớ sao lại hardcode kiểu "app_name == 'django_restful_admin'" ???

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement improvement for existing feature medium priority
Projects
None yet
Development

No branches or pull requests

4 participants