2017-06-06 3 views
0

これはセキュリティ上の問題であるとは確信していませんが、何か間違ったことを理解していますか?だから私はこの質問をする。URLを使用してコントローラ機能を実行できるCodeigniterのセキュリティ問題ですか?

私が理解したように、誰もがURLを使用して任意のコントローラ機能を実行できます。 userというコントローラーにdeleteというコントローラー機能があるとします。

だから、誰もが

http://example.com/index.php/user/delete 

を使用してその機能を実行することができ、それはsecurty問題ですか?

純粋なPHPでは、カスタム関数名がわかっていても、URL経由で関数を実行することはできません。

しかし、コントローラ名と関数名を知っている人なら誰でもCodeigniter Controllerで任意の機能を実行できるようです。それはセキュリティの問題ですか、私は間違って何かを理解していますか?

答えて

0

あなたは誤解しています。 CodeIgniterにURLを渡すと、カスタム関数を直接実行することはできません。 CIはURLを取り出し、分割して、デフォルト処理と設定したカスタムルーティングに基づいてルーティングする方法を見つけます。 CIを使用せずに、同様の方法で動作する素早く汚れたセットアップを一緒に投げることができます。この種の設定は、CIやPHP自体に固有のものではありません。

この動作はセキュリティ上の問題ではありません。 USER INPUT + DEVELOPER RESPONSEはセキュリティ上の懸念事項です。その削除呼び出しを処理する方法と、渡されるデータが潜在的なセキュリティ問題が関連する場所です。

-1

セキュリティ上の問題はありません。 しかし、delete関数を使用すると、deleteパラメータの値を設定すると言います。 任意の行の値を削除するパラメータを使用する場合は、次のURL形式を使用してください http://www.example.com/index.php/user/delete/id/1 詳細を記述してから、私はあなたに手伝ってください。

0

deleteメソッドの例では、いたずらの可能性があります。 deleteに送信されたパラメータは表示されませんが、削除するユーザを識別するためにはパラメータが必要です。敵対的なオペレータはdeleteを呼び出し、ランダムなユーザID値を試すことができます。 「安全」であるためには、ユーザが知られていて適切な許可を得ていない限り、削除方法が進まないある種の認証/許可システムが必要です。

「ユーザー」を扱う「追加」、「編集」、および場合によっては「表示」の方法にも同じことが適用されます。

実際には、データの作成、更新、読み取り、および削除(CRUD)を扱うUIはすべて、認証/許可システムが必要です。

この必要性はCodeIgniter固有のものではありません。

+0

お返事ありがとうございます。 「実際には、データの作成、更新、読み込み、削除(CRUD)を扱うUIはすべて、認証/許可システムが必要です」 - 私はそれに同意しており、すでに実装しています。私の質問は純粋なPHPで他の人はURLを使ってカスタム関数を実行することはできませんでしたが、codeigniterでは可能です........ –

関連する問題