在最佳实践和安全性方面处理搜索关键字路由中的URL参数

时间:2014-08-16 18:36:00

标签: php symfony routing

以下路由是搜索目的,因此URL将包含关键字。我需要知道的是以一种安全的方式定义keyword?我怎么能用yml做呢?我们都知道用户输入的关键字可以包含任何内容!

注意:我可以在下面的yml中忽略它,并在控制器中处理它,但我想知道如何在yml中完成它。

提前致谢

的routing.yml

search_result:
    pattern:  /search/result/{field}/{keyword}
    defaults: { _controller: CarBrandBundle:Search:result }
    methods:  [GET]
    requirements:
        field:  brands|cars|both
        keyword:  ??????????????????????????

我已经查看了Routing指南,但没有具体说明。

1 个答案:

答案 0 :(得分:1)

您可以指定正则表达式,将输入限制为指定的模式。实际上,您的requirements.field已经是正则表达式。

但是,您应该知道,如果输入与模式不匹配,则不会有异常,但路由不会被视为匹配。因此,捕获所有并在控制器中进行实际处理可能更好。