Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

关于适配框架的思考 #26

Closed
grayguest opened this issue Mar 21, 2019 · 5 comments
Closed

关于适配框架的思考 #26

grayguest opened this issue Mar 21, 2019 · 5 comments

Comments

@grayguest
Copy link

作者师傅好,最近在看cobra.py的代码,特别是核心代码parser.py,发现你对这个文件改动最多,修复了不少问题,但是对于静态扫描框架一筹莫展,不知能否给一些提示,如何适配php的框架,比如laravel、symfony、yii等,以及可能会取得什么样的效果。或者采用php运行时检测hook的那种方式能取得比较好的效果?

@LoRexxar
Copy link
Owner

是这样的,关于框架的适配是我后来的一个想法,现在做出来的是一个半成品。

@LoRexxar
Copy link
Owner

大致是,我觉得针对框架的主要问题在于输入、过滤函数这点,大的框架在这两部分都重新hook做处理。

所以我引入了一个叫做tamper的东西。

如果手动的针对一大部分框架做好tamper,那就可以在扫描的时候指定这两个列表,就不会出现无法处理的情况了。

在这种情况下,如果我对面向对象的代码处理的足够好(还有一些bug没处理),就可以最大程度适配php框架代码。

当然tamper这个功能在开发的过程中我发现牵扯过多,再加上中间有别的事情支开了,过一段时间我会重构这部分,到时候看看效果怎么样

@grayguest
Copy link
Author

好的,感谢LoRexxar师傅的细致回答,打算看完cobra的代码再看cobra-w的代码,这方面要做深了是不是要重新弄个针对框架的词法和语法分析呢,毕竟框架底层才是php原生代码,感觉这方面热度有点低,刚才我加cobra群看到你啦,嘿嘿。

@LoRexxar
Copy link
Owner

23333,cobra群已经很久没人活跃了,应该也没人回复

@LoRexxar
Copy link
Owner

还是支持你做针对框架的语法分析的,主要问题在于,在阅读过很多框架的代码之后,我发现有些框架的思路真的是天差地别,甚至还有将加载模块放在数据库里的,这种奇怪的解决方式令人非常难受,再加上面向对象的继承、重载问题也很多,还是需要一些新的解决思路的,还是欢迎和我讨论哈

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants