Kohanaは、ドキュメント内のデータベース入力をサニタイズするためにmysql_real_escape_stringを使用していると述べています。ただし、フォームを介していくつかの基本的なクエリを試してみると、それらは私が入力したとおりにデータベースに入力されました。例えば:
SELECT * FROM users WHERE username='admin' AND password='' OR ''=''
表示されているとおりにそのmysqlデータに入力されます。私は見ることを期待していました:
SELECT * FROM users WHERE username=\'admin\' AND password=\'\' OR \'\'=\'\'
データベースの代わりにORMライブラリを使用していますが、それらが連携して機能することはわかっています。また、組み込みの入力ライブラリ($ this-> input-post)を使用して、フォームからデータを収集しています。セキュリティに関連するコントローラやライブラリは変更していません。
私はまだソースコードをとかしていませんが、Kohanaは文字列をエスケープしてから、dbフィールドに入力する前にスラッシュを削除しますか?私はこれが事実であるとある程度確信していますが、私は確信したいと思います。
ありがとう