2012-04-25 12 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

ボタンのonclickイベントをjavascriptでキャプチャし、ユーザーが削除を確認できるポップアップを表示できます。

1

ボタンの警告では不十分です。ブラウザに直接URLを入力すると、レコードは削除されます。 POST動詞で要求が行われていることを確認する必要があります。

関連する問題