2012-04-25 5 views
0

데이터베이스에 유지 된 엔티티 클래스의 모든 객체를 편집하고 삭제할 수있는 테이블이 있습니다.보안 삭제 객체

이제 내가 delete-url로 이동했을 때 : 사용자가 삭제를 확인해야하므로 삭제를 보호하는 가장 좋은 방법은 무엇입니까?

간단한 버튼 또는 더 나은 해결책이 있습니까?

답변

7

아니요! 이러지 마! URL을 직접 삭제하지 마십시오!

GET 요청은 멱등환이어야하며 그렇지 않으면 실제로는 violation of the HTTP specification입니다.

응용 프로그램 내의 파괴적 동작은 POST 요청으로 실행되어야합니다.

JavaScript 구동 확인 대화 상자는 멋진 UI 기능이지만 이 문제를 해결하지 않습니다!

+0

안녕하세요, Symfony 컨트롤러에서 어떻게하면 좋을까요? POST 만 듣고 요청에서 POST 데이터를 인코딩하고 엔티티를 검색하고 제거 하시겠습니까? – bodokaiser

+0

예, 삭제 작업은 POST 메서드 요청으로 만 제한되어야하지만 올바른 POST 요청을 생성하려면 테이블을 업데이트해야합니다. 이를 HTML 양식으로 구현하든 AJAX 호출로 구현하든간에 여러분에게 달려 있습니다. –

+0

안녕하세요, 게시 요청에 어떤 데이터가 있어야합니까? id, 전체 개체입니까? – bodokaiser

1

javascript로 버튼의 onclick 이벤트를 캡처하고 사용자가 삭제를 확인할 수있는 팝업을 표시 할 수 있습니다.

1

버튼 경고가 충분하지 않습니다. URL이 브라우저에 직접 입력되면 레코드가 삭제됩니다. POST verb로 요청을해야합니다.