2013-09-29 3 views
2

저는 Symfony를 처음 접했고,이 프레임 워크에서 배운 것을 적용하기 위해 완전한 앱을 만들고 싶었습니다. 나는 Message 엔티티를 보유하고 있으며,이 엔티티의 제거를 안전하게하고 싶습니다. 메시지를 작성한 사용자와 사회자 만이 메시지를 제거 할 수 있습니다. 제거를 확보하는 방법? 내 코드에서 이미 if($message->$user == $this->user || $this->user->isGranted('ROLE_MODO'))과 같은 것을 작성했지만 CSRF 공격을 방지하는 방법은 무엇입니까?Symfony 2로 엔티티 제거를 안전하게하십시오.

+1

해결책은 괜찮습니다. 엔티티를 사용자에게 체크인하십시오. CSRF 공격에 대한 귀하의 문제는 무엇인지 모르겠습니다.) Symfony에서 CSRF 보호를 활성화하면 숨겨진 필드로 처리됩니다. – Stony

+0

그 hiddden 필드? {{csrf_token ("intention")}}'컨트롤러에 추가 할 특별한 것이 아무것도 없습니까? – palra

+0

정확한 이름을 모르지만 올바르게 보입니다. Symfony2는 CSRF를 자동으로 보호합니다. http://symfony.com/doc/current/book/forms.html#csrf-protection – Stony

답변

1

사용자가 양식을 제출해야하는 삭제 양식이 있습니다. 누군가가 경로/컨트롤러의 URL을 추측하는 경우에도 다음 올바른 사용자 등

경우

는 컨트롤러가 여전히 있는지 확인합니다이 양식을 제출 다루는 독립 컨트롤러를 가지고 있고, 거기에 확인 올바른 사용자이고 삭제 양식이 CSRF 토큰과 함께 올바르게 제출되지 않았습니다.

관련 문제