나는 Django's comments framework이 블로그 나 artcile 아래에 일반적으로 표시되는 것과 같이 익명의 공개 댓글을 위해 디자인되었다는 것을 알고 있습니다. 즉, 누구나 의견을 게시 할 수 있습니다.Django의 댓글 프레임 워크와 CSRF
로그인 한 사용자 만 댓글을 표시 할 수 있도록 댓글 프레임 워크를 사용하고 있습니다. I did was modify the form.html
및 name
, URL
및 email
필드를 숨 깁니다 (보안 필드는 그대로 유지). 따라서 사용자는 comment
필드 만 볼 수 있습니다. Django의 주석은 이미 타임 스탬프 확인, 허니팟 필드 및 안티 이중 게시 기능과 같은 멋진 보안 기능을 가지고 있으므로 사용하고 싶습니다. 사용자 정보는 request.user
RequestContext에서 가져와서 comment.user.get_full_name
에 대한 사용자 정보를 comment.name
또는 comment.user.email
대 comment.email
에 대한 것으로 보냅니다.
또한 장고의 CSRF 보호에 대해 읽어보기 시작합니다. 대부분의 경우 사람들은 CSRF가 어떻게 해커가 자신의 쿠키 또는 무엇인가를 사용하여 로그인 한 사용자의 은행 계좌에서 돈을 이체하는 것을 방지하는 방법에 대해 이야기합니다.
내 경우 CSRF는 사람들이 다른 사용자로 게시하지 못하도록합니까? 즉, 해커가 자신의 POST 양식을 만들고 다른 사람을 위조하여 다른 user.pk
에 게시 할 수 있습니까?
해커가 등록하고 성공적으로 로그인하면 의견을 게시하는 동안 POST 응답을 수정하고 사용자 ID를 자신 이외의 것으로 변경합니다 (단, CSRF와 동일하게 유지합니다). 다른 누군가와 의견을 올릴 수 없습니까? – hobbes3
그 뜻은, 단순히 사용자의 POST에서'comment.user'를 무시하고'views.py'에서'comment.user = request.user.pk'와 같은 것을 선언해야합니까? – hobbes3
@ hobbes3 네, 그건 그것이 가짜가되는 것을 피하는 방법입니다. – agf