CodeIgnighterのデータベースAPIに依存するhereのようなコードを書くことを試みています。私はforum postを読んでCodeIgnighterのデータベースAPIがSQLインジェクションを完全に阻止しているかどうかを確認しました。私はpeople suggestの多くを知っています。PDO FrameworkをSQLインジェクションを防止する最良の方法として使用しています。私はPDOフレームワークの使い方を知っていますが、準備されたステートメントを使ってモデルでクエリを生成する方法はわかりません。 CodeIgnighterのデータベースAPIを使用してSQLインジェクションを保存していますか、PDOフレームワークを使用する必要がありますか?CodeIgnighterのデータベースライブラリーはSqlインジェクションを防止するのに十分です
1
A
答えて
3
あなたがコードの点火器を組み込んだ機能を使用すれば、あなたは大丈夫になります。ここで
は、この多くを説明するのstackoverflowのリンクです: StackOverflow Question,
使用してクエリをparametized、上記のSO問題の例に従うと、あなたはSQLインジェクションから安全になり、ずっとあなたが他にありませんCIベストプラクティスに従った良いコードを作成し、すべての組み込み関数を使用するだけです。
2
CIのライブラリは、mysql_real_escape_string
(または好みのドライバが何であれ)と同様にSQLインジェクションに対する防御です。どうしてこれなの?そのDBライブラリはすべての入力でそのライブラリを呼び出すからです。また、すべてのテーブル名とカラム名を適切にエスケープします。さらに、PDOを使用するということは、何とかCIのActive Record構文の書き換えを使用する必要があることを意味します。
つまり、PDOには多くの利点があります。私は、セキュリティは事実上それらの一つだとは思わない。
3
CodeIgniterについてはあまり言いませんが、例としてDoctrineを使用します。データベースからユーザーを取得したいとします。あなたは、クエリに条件を追加することができます。
// Correct usage. $user value will be passed as bound parameter to PDO
$query->where('u.username = ?', $user);
それとも...
// Works fine but should not be used like this and can be exploited if $user was not sanitized/escaped
$query->where("u.username = '$user' ");
同じことがあまりにも平野PDOに適用されます。
答えは:それはあなたを助けることができますが、ドキュメントを読んでガイドラインに従う必要があります。
関連する問題
- 1. フォームデータ:防止SQLインジェクション
- 2. SQL Server - SQLインジェクションを防止する
- 3. SQLインジェクションの挿入を防止する
- 4. SQLインジェクションの防止方法
- 5. 防止SQLインジェクションとのSqlDataAdapter
- 6. ストアドプロシージャによるSQLインジェクションの防止
- 7. rubyスクリプトによるSQLインジェクションの防止
- 8. Codeigniter RestFul library SQLインジェクションを防止する
- 9. SQLインジェクションを防止するHttpUtility.UrlEncode
- 10. ストアドプロシージャでのSQLインジェクションの防止
- 11. PHP防止SQLインジェクション/ XSS
- 12. PHP SQLインジェクション防止技術
- 13. PHP SQLインジェクション防止構文
- 14. SQLインジェクション防止用パッケージ
- 15. c#to PHP SQLインジェクション防止
- 16. execまたはexecuteでクエリにSQLインジェクションを防止する
- 17. SQLインジェクションの防止 - mybatisとspring
- 18. URLインジェクションを防止する
- 19. SQLインジェクションを防止するためのC#regexでのエラー
- 20. SQLParameterはSQLインジェクションをどのように防止しますか?
- 21. AspNetUsersテーブルSQLインジェクション攻撃を防止するには?
- 22. ;まだ有効? PDOの準備文はSQLインジェクションを防ぐのに十分ですか?
- 23. SQLインジェクション防止:最大対策
- 24. 実行されていないSQLでのSQLインジェクションの防止
- 25. MS Access - 接続文字列のSQLインジェクションを防止する
- 26. LINQ-To-SQLはSQLインジェクションをどのように防止しますか?
- 27. addslashes(string)だけでSQLインジェクションを防止できますか?
- 28. SQLインジェクションを防止するために必要なステップは何ですか?
- 29. psychopg2:cursor.mogrifyはSQLインジェクションを防止しますか?
- 30. regexp_replaceを使用してSQLインジェクションを防止する