如何爆破laravel
Route::getCurrentRoute()->getActionName() // IndexController@getRegister
进入数组:名称空间,控制器,方法,操作
我创建了expr:
(.*)\\(.*)Controller@(get|post|put|delete|patch)(.*)
但它并不适用于所有路线
Admin\IndexController@getIndex
Admin\IndexController@postIndex
Other\Namespace\Admin\IndexController@putIndex
Admin\IndexController@deleteGetAjaxSuper
Admin\IndexController@patchIndex
IndexController@getRegister
Other_IndexController@getRegister
IndexController@getRegister
IndexController@getRegister
http://regexr.com?389rh 它不适用于最后4项。
答案 0 :(得分:0)
它与最后4项不匹配,因为项目在控制器之前不包含\。您的正则表达式需要他们拥有它,因此与它不匹配。答案是通过使用?使初始斜杠可选? (= 0或1次出现),如下:
(.*)\\?(.*)Controller@(get|post|put|delete|patch)(.*)
在旁注中,您确定控制器没有具体名称吗?即。一个名为“Controller”的控制器也会匹配你的正则表达式。要禁止(并且只允许[某些]控制器),您可以将第二个。*更改为。+(因此从0或更多匹配更改为1个或多个匹配)。像这样:
(.*)\\?(.+)Controller@(get|post|put|delete|patch)(.*)
你的方法也是一样的(get | post | etc。):
(.*)\\?(.+)Controller@(get|post|put|delete|patch)(.+)
答案 1 :(得分:0)
假设您在控制器之前没有任何空间
\S+Controller@(get|post|put|delete|patch)(.*)
使用.*
代替\S+
也可以。