我有一个带有Mongo后端的RESTful API端点。我允许用户使用GET参数过滤他们的查询,例如获取网站上/about
页面的分析:
/page-analytics?filter_by=pagePath:/about
我想扩展它以支持正则表达式过滤器,例如获取网站上/about
以下所有网页的分析结果:
/page-analytics?filter_by=pagePath:/about/.*
最安全的方法是什么?我应该将正则表达式括在封闭标记内吗?我应该让用户传递URL转义变量吗?
我的要求如下:首先,我想编写后端代码来检查我们是否有一个有效的正则表达式,然后再将它传递给我的数据库。其次,我不希望用户传入的正则表达式被URL转义搞砸了。
问题的一个例子:我最初开始将所有正则表达式都用斜杠括起来,比如/^about/.*$/
,但这不能很好地工作,因为我的服务器从URL中删除了斜杠。
如果有人有任何提示,我将非常感激。