我对Zend框架非常不满意,所以我现在可能有一些明显的问题。
我们的网络应用程序的部分要求是阻止任何形式的输入,其中包含一堆恶意数据,如标签{我知道这不一定是恶意的,但这不是我的决定}。因此,我目前正在执行的策略是extending the zend_controller_request_http class
,我会覆盖getParams() and getParam() methods
,以确保检查是否存在列入黑名单的代码。
它工作正常,但我相信确保特定路径中的变量满足其要求的方法是通过Zend_Controller_Route定义Zend_Controller_Route variable requriements:
所以我正在尝试使用Zend_Controller_Router_Route_Regex类的替代方法。在我的BaseController.php file (All other controllers extend BaseController.php)
中,这就是我所做的:
$route = new Zend_Controller_Router_Route_Regex(
"/<script\b[^>]*>([\s\S]*?)<\/script>/m",
array(
"controller" => "user",
"action" => "usersettings"
)
);
$router->addRoute('whatever',$route); //notice the whatever, coz I am not quite sure what should be going out here.
在我的用户设置操作中,我输入一个随机警报(“无论什么”);在表单输入字段中并保存它。就我而言,请求对象应该附加正则表达式过滤器,并且根本不应该保存这个表单,但是,它确实保存了表单。
显然,我在这里遗漏了一些东西,或者说完全错了。有什么指针吗?