私のウェブサイトにテキストボックスがあります。このテキスト ボックスは、フォームとポスト メソッドでテキスト値を指定します。このフォームは、データベース内の特別なテキストを検索します。sql injectin または xss からの安全な入力データを確認するにはどうすればよいですか。
1 に答える
Symfony2のORMデータベーススタイルの性質上、SQLインジェクションから自然に保護されます。構成またはValidatorクラスによって設定された制約と一致しないデータは、とにかくデータベースに到達する前に拒否されます。
データは、リクエストクラスに渡される前に自動的にエンコードされます。XSSは、受信側と出力側の両方で、指定しない限りデータがRAW形式ではないため、不可能です。指定しないと、とにかく組み込みのセキュリティが無効になります。
Symfonyはデフォルトで(フォームクラスを使用する場合)リクエストの送信者を検証するためにフォーム送信でCSRFトークンを作成するため、フォームでのXSSは実行可能ではありません。特に無効にしない限り、それらは自動的に生成され、非表示フィールドに含まれます。
symfonyの組み込み機能は最初のステップにすぎません。ベストプラクティスは、データトランスフォーマーを使用して、データが期待する形式とタイプであることを確認することです。
データトランスフォーマー:http ://symfony.com/doc/current/cookbook/form/data_transformers.html
最後に、SQLインジェクションについては、組み込みのクエリビルダーまたはDQL言語(教義を使用している場合)を使用することは、高度にカスタマイズされたクエリを使用するときにインジェクションを防ぐためのセキュリティのもう1つのレイヤーです。