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インジェクションの挿入を防止する
- 3. rubyスクリプトによるSQLインジェクションの防止
- 4. ストアドプロシージャによるSQLインジェクションの防止
- 5. Codeigniter RestFul library SQLインジェクションを防止する
- 6. PHP SQLインジェクション防止構文
- 7. SQLインジェクション防止用パッケージ
- 8. PHP SQLインジェクション防止技術
- 9. SQLParameterはSQLインジェクションをどのように防止しますか?
- 10. SQLインジェクション防止:最大対策
- 11. 実行されていないSQLでのSQLインジェクションの防止
- 12. MS Access - 接続文字列のSQLインジェクションを防止する
- 13. LINQ-To-SQLはSQLインジェクションをどのように防止しますか?
- 14. addslashes(string)だけでSQLインジェクションを防止できますか?
- 15. SQLインジェクションを防止するために必要なステップは何ですか?
- 16. SQLインジェクションを防ぐ
- 17. mysqli_real_escape_stringがSQLインジェクションを防止できないのはなぜですか?
- 18. 停止SQLインジェクション
- 19. Entity Frameworkのと生の文字列クエリSQLインジェクションの防止
- 20. 詳細ページからのSQLインジェクションの防止
- 21. .NETの動的SQLでテーブル名または列名をサニタイズしますか? (防止SQLインジェクション攻撃は)
- 22. PYTHON-DJANGOでSQLインジェクションを防止するにはどうすればよいですか?
- 23. RegexがSQLインジェクションを検出する手段ではないが、SQLインジェクションを防止する手段ではない
- 24. htaccess書き換えルールはSQLインジェクションを防止するのに役立ちますか?
- 25. SQLインジェクションからサイトを防ぐ方法
- 26. JDBI SQLインジェクションを防止しながらWHERE句を動的に作成する方法はありますか?
- 27. 名前付きパラメータの主なパフォーマンスの低下とネイティブSQLでのhibernateを使用したSQLインジェクションの防止
- 28. これは、ユーザー指定のSQLクエリをサニタイズするのに十分ですか?
- 29. XSS攻撃を阻止するにはmarkdown(strip_tags付き)で十分ですか?
- 30. SQLインジェクションをC言語で防ぐ方法は?