我试图编写一个能够清理来自客户端的数据的函数。 即时通讯使用zend框架,我知道它提供了这样做的功能。但我不使用zend_form所以我不知道如何使用这些功能
我希望能够从sql注入中清除数据......然后将它们保存在数据库中或使用该数据进行任何进一步处理。
所以我的问题是,那里有没有任何功能或图书馆可以做到这一点? 我正在寻找一个函数,它将把一个字符串作为输入并返回已经过消毒的函数。
谢谢
答案 0 :(得分:2)
如果您使用PDO,Zend_Db或其他ORM准备好的语句,那么参数将被正确转义,以便在大多数情况下进行消毒。
PDO示例:
$pdo = new PDO($dsn, $username, $password);
$pdo->prepare("INSERT INTO some_table (col1, col2, col3) VALUES (?,?,?)");
$pdo->execute(array($valueCol1, $valueCol2, $valueCol3));
在您进入该步骤之前,您应该验证Zend_Validate
所针对的数据。如果你不想,你不必使用Zend_Validate和Zend_Form - 你可以创建验证器实例然后验证不同的值。
ZF文档中的示例:
$validator = new Zend_Validate_EmailAddress();
if ($validator->isValid($email)) {
// email appears to be valid
} else {
// email is invalid; print the reasons
foreach ($validator->getMessages() as $messageId => $message) {
echo "Validation failure '$messageId': $message\n";
}
}
Zend_Form只是一种处理表单处理并使事情易于重用的便捷方式。