私はphpからsqliteへの入力をサニタイズする方法を見つけ出そうとしています。私はmysqlを使うことができません。単にsqlite_escape_stringを使用するだけで十分ですか、それとも何か他のことをする必要がありますか?また、私はsqlite2しか使用できません。mysqlなしでPHP入力をサニタイズする方法
答えて
は方法がありますが、それはあなたの入力のターゲットに依存し、それをよりよく理解するためにこの質問を参照してください:What's the best method for sanitizing user input with PHP?
sqlite_escape_string()
は、すべてあなたが入力した文字列を必要とする消毒行う必要があります。出力する場合は、HTMLに出力する場合は、出力する前にhtmlspecialcharts()
を使用してください。
SQLiteはsqlite_escape_string()
を提供しています。 PHP 5でしか利用できません。
これらの方法に頼るだけでは、注射からあなたを救うことはできません。命令には、が常にになります。メソッドに従う前に、ユーザー提供の入力が最初に検証されてから、依存する必要がありますが、実際には作成されていません。
SQLインジェクションを避ける最も良い方法は、パラメトリッククエリの使用を強制することです。は、文字列連結または変数補間によって手動でSQL文を手動でアセンブルすることはありません。
PHP 5以降では、(特に)SQLiteやパラメトリッククエリをサポートするマルチデータベース抽象化レイヤであるPDOを使用できます。
エスケープ関数は、SQLダイアレクトで使用される特殊文字(主に引用符)がエスケープされていることを確認し、挿入/更新などが機能するようにします。すべてのsqlite_escape_stringは単一引用符でエスケープします。
それで、誰かがSQLインジェクションを手掛けることができるという実質的な懸念があります。 v2を使用しているため、あなたを保護するprepare関数と_bind()関数を使用することはできません。
SQLiteでは、 ';'で区切られたコマンドを連鎖させることができます。だからそこに問題がある。まず、ヘルパー関数を使ってパラメータを作成するか、sprintfを使ってパラメータを慎重に作成し、int、float、およびstringを適切に入力することをお勧めします。
注意したいものを「エスケープする」独自のエスケープ機能を作成することができます。最も具体的には、セミコロンを使用します。ESCAPEクエリの最後に '\'エスケープ文字としてバックスラッシュを使用します。
次に、悪意のあるコンテンツ(XSS)を意図的に挿入するという問題があります。 Grigorは、あなたの文字列にhtmlentities()を使用するという1つの解決法を提供しました。
- 1. 郵送前にPHPでユーザ入力をサニタイズする方法は?
- 2. C#でユーザ入力をサニタイズする - 最もクリーンな方法?
- 3. Tastypieサニタイズ入力?
- 4. pingプログラムへのPHP入力のサニタイズ
- 5. ユーザー入力をlaravelでサニタイズする
- 6. .Net DbCommandサニタイズ入力
- 7. Erlangの入力をサニタイズする方法は?
- 8. @ Html.Textareaは入力をサニタイズしますか?
- 9. Java Webアプリケーションでの入力のサニタイズ方法
- 10. Javaでのデータベース入力のサニタイズ方法は?
- 11. 入力をサニタイズする.NETライブラリ?
- 12. 入力サニタイズVS検証
- 13. oracle querysのhtml jquery-ui php入力変数のサニタイズ
- 14. URLの一部としてユーザー入力をサニタイズする
- 15. phpでデータターゲットIDを正しく入力する方法
- 16. .NETが手動で入力をサニタイズするのはなぜですか?
- 17. Spring MVCフレームワークでユーザ入力をサニタイズする
- 18. XSS攻撃 - サニタイズ入力vs拒否
- 19. ColdFusionでSQLサニタイズをオーバーライドする方法
- 20. ユーザが入力した句をPythonで入力する方法
- 21. Yii CActiveFormは自動的にユーザー入力をサニタイズしますか?
- 22. codeigniterはどのように入力をサニタイズしますか?
- 23. クリーナーはJTextField入力を「サニタイズ」しますか?
- 24. C#経由でMySQLにDateTimeを入力する方法
- 25. MySQL Server 5.1でインドルピー記号を入力する方法は?
- 26. 入力時にPHPフォームがMySQLにデータを送信しない
- 27. MySQLとPHPを使用したユニークな入力確認
- 28. 外部プロセスへの入力をサニタイズする
- 29. MySQL/PHPで行を同時に挿入/更新する方法
- 30. PHP MySQLのドロップダウンボックス選択した値を入力する
http://stackoverflow.com/questions/60174/best-way-to-stop-sql-injection-in-php – DrDol