私はいくつかの Web サイトでセキュリティと安定性を向上させることを検討しており、チェックしていることの 1 つは、ユーザーからのすべての入力をエスケープすることです (そうする必要があります)。
多くの場合、標準の Zend_Db_Table_Row setFromArray() メソッドを使用しています。
$myForm = new Form_MyForm();
$myTable = new Model_DbTable_MyTable();
if ($this->getRequest()->isPost())
{
if ($myForm->isValid($_POST))
{
$myRow = $myTable->createRow();
$myRow->setFromArray($_POST);
$myRow->save();
}
}
期待どおり、これはうまく機能します。ただし、このコードの任意の時点で入力がエスケープされているかどうかはわかりません (ユーザーからのすべての入力は、データベースの近くに配置される前にエスケープする必要があります)。私は Zend で quoteInto() を使用していますが、外部でも mysqli_real_escape_string() を使用しています。
上記の例でユーザー入力がエスケープされているかどうか (DB の準備ができているかどうか) を知っている人はいますか?