私のPHPコードでは通常の使用のためです。私はそれを私の質問や何かに渡すつもりはない。PHP:_GETデータを使用するために必要なサニタイズはありますか?
1
A
答えて
7
- あなたはSQLクエリに渡す場合は、ファイル名を形成するためにそれらを使用する場合は、AS-であるにあなたの出力それら場合は、脆弱性
- を読んで任意のファイルを取得するSQLインジェクション
- を取得ユーザーあなただけのセットで値を比較している場合、それはいくつかの
- をフォーマット所定た場合、ファイルにそれらを使用すると、出力した場合、HTMLページの一部として、あなたは
- XSSの脆弱性を取得し、あなたが不正な形式のファイルを得ることができますあらかじめ定義された値のうち、あなたは大丈夫です。
- あなたは数に変換している場合、あなたは限り、あなた
0
$_GET
パラメータに何か(または何も)絶対に得ることができることに留意して、アプリケーションとそのセキュリティに必要なものが必要です。たとえば、クエリで値を使用していない可能性がありますが、たとえば、ページ内の値を盲目的に使用すると、クロスサイトスクリプティング攻撃を受ける可能性があります。 「無害な」Webサイトは、クロスサイトスクリプティング攻撃に簡単に陥る可能性があります。
ユーザーの入力を信頼しないでください。はいですか?
0
あなたはそれらの内容及びそれらの用途に応じて変数をサニタイズする必要があるため、任意の数の作品としていいですよ。そう
あなたがそうのような変数がある場合:データベース内で使用して
$_GET['page_id']
そして、あなたの、そしてあなたのサニタイズそれを。
あなたがそうのような変数がある場合:
require_once "pages/" . $_GET['action'] . ".php"
のように使用上の
$_GET['action']
そして、あなたの計画をあなたが行う前に、あなたがサニタイズそれ、otちょうどregister_globals
がオフであることを確かめ、あなたはかなり考えなくてもそれらを使っていないように大丈夫になります
2
これは本当にあなたのコードを踏んで、それが何をしているかを正確に見ることによってのみ答えられます。あなたのコードに衛生を必要とする可能性のある落とし穴があります(間違って組み込まれたswitch
のような)。
、入ってくるデータをサニタイズするあなた必要一般的なシナリオは、次のとおりです。ファイル名
- を渡すためにそれを使用してファイル
- を含めるためにそれを使用しました
exec()
- これをHTMLに出力する
0
あなたのサーバーから来ていないものはすべて消毒する必要があります!これには$_GET, $_POST, $_SERVER
が含まれます。
関連する問題
- 1. データベースからデータをサニタイズする必要はありますか?
- 2. データのサニタイズPHP - if文の中にあるユーザ入力をエスケープする必要がありますか?
- 3. PDOのpassword_verifyは、サニタイズする必要がありますか?
- 4. PHPで$ _SESSION変数を検証/サニタイズする必要がありますか?
- 5. AJAXの応答データをサニタイズする必要がありますか?
- 6. Facebookのデータをエスケープしてサニタイズする必要がありますか?
- 7. htmlを「隠す」ためにPHPまたはCSSを使用する必要がありますか?
- 8. 設定データをキャッシュするためにプロパティまたはディクショナリオブジェクトを使用する必要があります
- 9. PHP - クラスを使用する必要がありますか?
- 10. php configureコマンドを使用する必要がありますか?
- 11. 空間データを使用する必要がありますか?
- 12. PHP上にスーパークラスを含める必要がありますか?
- 13. 電子メールで送信する前にユーザー入力データをサニタイズする必要がありますか
- 14. なぜソケットをPHPで使用する必要がありますか
- 15. URLをエンコードするためにencodeURIまたはencodeURIComponentを使用する必要がありますか?
- 16. 印象を追跡するためにログファイルまたはDBを使用する必要がありますか?
- 17. PHPスクリプトでPHPタグを使用する必要がありますか?
- 18. なぜ私はテンプレートクラスをC++で使用するために特殊化する必要がありますか?
- 19. std :: weak_ptrの_Getメソッドは何を行い、いつ使用する必要がありますか?
- 20. データを取得するためにPHP mysqlまたはjsonファイルを使用する必要がありますか?
- 21. 'before_validate'または 'before_save'のときにユーザー入力をサニタイズする必要がありますか?
- 22. PHP - セッションにはどのようなデータを含める必要がありますか?
- 23. PythonでテストするためにTestCaseまたはFunctionTestCaseを使用する必要がありますか?
- 24. より良いアプリケーションサイズを得るためにコアデータまたはSQLiteを使用する必要があります
- 25. なぜvalue.lengthを使用する必要がありますか?
- 26. UUIDなどを使用する必要がありますか?
- 27. なぜstopPropagation()を使用する必要がありますか?
- 28. メモリストレージエンジンを使用するために特別な処理を行う必要はありますか?
- 29. Cocos2d - タッチ可能な「線」のためにccDrawLineまたはOpenGLを使用する必要があります
- 30. Cordova:データベースを取得するのにphpまたはnode.jsを使用する必要がありますか?
「通常使用」を定義しますか?いくつかの例を見せてもらえますか? –
サニタイズにより、処理ロジック内の予期しないエッジケースを緩和することができます。しかし、適切な場所で脱出するだけで安全がもたらされます。また、すべての変数には特定の[フィルタリング](http://sourceforge.net/p/php7framework/wiki/input/)が必要ですが、すべてを消毒することはできません。 – mario
私は危険に最も近いのは、ファイルがディレクトリリスト内の指定された名前で存在するかどうかをチェックすることです – Hamster