2

CodeIgniter フレームワークを使用して PHP で記述された Web サイトがあります。数年前から進行中の作業であり、最終的にはオープンソースにしたいと考えています。現在、約 10,000 行の PHP (CodeIgniter ライブラリを除く) まで実行されます。最近、CodeIgniter を使い続けることができないことが明らかになりました。

これに関する主な問題は、開発者が XSS と適切なエスケープを理解していないか、気にしていないように見えることです。属性で直接終了する関数への引数 (例: anchor()) でさえエスケープされません。フォーム入力を生成する関数は、エスケープするかどうかに関して一貫性がなく、ドキュメントはこのトピックについて沈黙しています (私ができることは、ソース コードを読むことだけです)。そして、「テンプレートエンジン」は、それが出来たとしても逃げないので、基本的には役に立たない。<?=anchor(html_escape('foo/bar/' . rawurlencode($baz)), html_escape($baz))?>リンクを出力したいたびに書くのはうんざりです。それはコードを地獄のように醜くし、私はいくつかの場所を見逃したと確信しています. 場合によっては、入力が不適切に「サニタイズ」され、この動作をオフにすることができません。たとえば、ユーザーが次を含む文字列を入力した場合%10どのフォーム入力フィールドでも、その部分文字列は、アプリケーションが認識できるようになる前に削除されます。

私のコードは、データベース (アクティブ レコード パターン)、電子メール、フォーム検証、ページネーション、セッションなど、多数の CodeIgniter ライブラリに依存しています。

別のPHPフレームワークは何ですか:

  • MVC パターンに基づいています。
  • 適切なテンプレート エンジンを備えており、エスケープ処理が苦手ではありません。
  • CodeIgniter からの移行は比較的簡単です (ほとんどのライブラリが同じです)。

?

4

2 に答える 2

1

そこにはたくさんの MVC フレームワークがあります。私自身、 Symfonyを個人的に使用しています。無駄なライブラリを必要とせずに拡張できるフレームワークです。考慮すべき他のものはLithiumLaravelです

Symfony のユーザーベースは他のものよりも大きいですが、どれもしっかりしています。フレームワークでComposerを使用して、サードパーティのライブラリで拡張することもできます。

于 2013-06-27T00:30:41.090 に答える