2011-06-17 4 views
0

これはループのために私を投げました。CakePHPの任意のテキストボックスに "select"と "from"という単語を含むフォームを送信すると、 'Missing 500.shtmlController'

あなたは言葉任意のテキストエリアに、そのエラーが出て「から」「選択」として私のCakePHPアプリケーションでフォームを送信した場合:それは、あなたが「選択何とかfromy」と入力した場合でも

Missing Controller 

Error: 500.shtmlController could not be found. 

Error: Create the class 500.shtmlController below in file: app/controllers/500.shtml_controller.php 

<?php 
    class 500.shtmlController extends AppController { 
     var $name = '500.shtml'; 
    } 
?> 

Notice: If you want to customize this error message, create app/views/errors/missing_controller.ctp 

エラーになります。しかし逆の順序で入力しても問題はありません。「select blah blah ... etc」と入力することはできますが、問題ありません。

私はjqueryのバリデータのプラグインを使用しています(私はそれはjavascriptの側ではないと仮定しなければならない - ?それはケーキ/ MySQLの/ワット何かでなければならないように思える)

任意の考えは非常に歓迎。

+0

私はCakePHPに関する多くの経験はありませんが、SQLインジェクションには問題があると想定しています。あなたが得ているエラーは、CakePHPが500エラーページをレンダリングしようとしていることです.SQLのインジェクション攻撃が発生していると思うと一般的なサーバー側エラーです。 500エラーページビュー/テンプレートが定義されていません。 –

+0

@RileyDutton:答えとして投稿する必要があります。 – Anomie

答えて

1

あなたは、ApacheにインストールModSecurityはありますか?あなたのエラーログにModSecurity: Access denied with code 500 (phase 2)のようなもののために

(insert[[:space:]]+into.+values|select.*from.+[a-z|A-Z|0-9]|select.+from|bulk[[:space:]]+insert|union.+select|convert.+\\(.*from) 

ルック:あなたの文字列がそのパターンをトリガーするように見えます。

そして、あなたが無効になってデフォルトPagesルートたようです:ケーキは500.shtmlControllerにdomain.com/500.shtmlためのルート要求しようとして

Router::connect('/pages/*', array('controller' => 'pages', 'action' => 'display')); 

を。

+0

十分です。私のホストに電話して、特定のフォームにModSecurityを渡す必要がある場合は、特定のエリアをホワイトリストに載せることができます。 – Dave

0

これは実際には2つの問題です。

  1. "静的な"ページ500.shtmlのリクエストをCakeに渡そうとすると、書き換えルールが正しく動作しません。 .htaccessファイルが適切に機能し、ApacheがAllowOverrideで構成されていることを確認してください。
  2. 投稿されたデータを処理する際に内部サーバーエラーを引き起こすコードに何か不具合があります。これをトラブルシューティングするには、POSTするコードを確認する必要があります。関連するコントローラコードを含めるように質問を修正してください。
関連する問題