4

doctrine 2 では、ORM を使用しているときに sql インジェクションから保護するにはどうすればよいですか? doctrine サイトで次のページを見つけました: http://docs.doctrine-project.org/projects/doctrine-dbal/en/latest/reference/security.html

ただし、これは dbal に関するものであり、ORM に関するものではありません。

$id が投稿された値であると仮定して、以下のようなものを使用しても安全ですか?

$entityManager->getRepository('Product')->find($id);

または、代わりに次のような名前付きパラメーターを使用してクエリを作成することをお勧めします。

// DQL Prepared Statements
$dql = "SELECT p FROM Product p WHERE p.id = ?1";
$query = $em->createQuery($dql);
$query->setParameter(1, $_GET['pid']);
$data = $query->getResult();

はいまたはいいえの答えだけを求めているのではなく、これが問題ないことを保証する信頼できるドキュメントがあるかどうかを確認することに注意してください。

4

1 に答える 1

4

このページで答えを見つけました: http://docs.doctrine-project.org/en/latest/reference/security.html#user-input-and-doctrine-orm

于 2014-03-17T12:23:48.453 に答える