gpt4 book ai didi

security - 在Zend应用程序中处理无效输入的最安全方法是什么?

转载 作者:行者123 更新时间:2023-12-03 07:50:38 25 4
gpt4 key购买 nike

我有一个应用程序,用户从包含ID值的链接(例如:/students/view/42)到达页面。在我的代码中,我使用Zend_Filter_Input,如下所示:

$input = new Zend_Filter_Input(array(), array(
'id' => new Zend_Validate_Db_RecordExists(array (
'table' => 'Students',
'field' => 'id'
)
), $this->_request->getParams());
if (!$input->isValid()) {
// ???
}

我认为到目前为止,还没有发生任何惊天动地的事情。但是,我不清楚该id的值无效该怎么办。

Vikram Vaswani在他的《 Zend Framework:入门指南》一书中,向用户抛出了一个异常(Zend_Controller_Action_Exception('Page Not Found',404))。这是处理此问题的最佳方法吗?如果没有,还有哪些其他选择可用?

最佳答案

您应该将用户重定向到带有404错误描述的页面(您应该使用ErrorController呈现异常消息),或者重定向到带有该学生不存在的消息的特定页面。

只需抛出异常并在ErrorController中呈现错误页面即可。

您可以这样:

 $this->getResponse()->setHttpResponseCode(404);

要么
throw new Zend_Controller_Action_Exception('This page does not exist', 404);

典型的ErrorController类如下:
class ErrorController extends Zend_Controller_Action
{
public function errorAction()
{
$errors = $this->_getParam('error_handler');

switch ($errors->type) {
case Zend_Controller_Plugin_ErrorHandler::EXCEPTION_NO_ROUTE:
case Zend_Controller_Plugin_ErrorHandler::EXCEPTION_NO_CONTROLLER:
case Zend_Controller_Plugin_ErrorHandler::EXCEPTION_NO_ACTION:
// 404 error -- controller or action not found
$this->getResponse()
->setRawHeader('HTTP/1.1 404 Not Found');

// ... get some output to display...
break;
default:
// application error; display error page, but don't
// change status code
break;
}
}
}

关于security - 在Zend应用程序中处理无效输入的最安全方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16473893/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com