博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Python——eventlet.backdoor
阅读量:6031 次
发布时间:2019-06-20

本文共 1075 字,大约阅读时间需要 3 分钟。

  eventlet.backdoor 是正在运行中的进程内的 Pyhon 交互解释器。

  该模块便于检测一个长期运行进程的运行状态,提供了一种可以不阻塞应用正常操作的 Pyhon 交互解释器,从而极大地方便了调试、性能调优或仅仅是了解事情是怎么运转的。

  在应用中孵化一个协程,这个协程运行一个 backdoor_server ,这个 backdoor_server 中有一个处于监听状态的套接字:

eventlet.spawn(backdoor.backdoor_server, eventlet.listen(('localhost', 3000)))

  

  当这个协程运行时,就可以通过 telnet 访问指定的端口,进而进入到应用的“后门”中了:

  

$ telnet localhost 3000Python 2.6.2 (r262:71600, Apr 16 2009, 09:17:39)[GCC 4.0.1 (Apple Computer, Inc. build 5250)] on darwinType "help", "copyright", "credits" or "license" for more information.>>> import myapp>>> dir(myapp)['__all__', '__doc__', '__name__', 'myfunc']>>>

  

  backdoor 很乐意在命令间将控制转给应用的其他部分,所以你可以观察一个长期服务请求的服务器中不同解释器命令带来的状态改变。

 

 eventlet.backdoor.backdoor(conn_info, locals=None) 

     在一个套接字上创建一个仅有一个已连接用户的交互控制台。这个命令不会阻塞调用者,因为它孵化了一个新的 greenlet 来控制这个控制台。该函数应该从一个接受循环中调用,比如 backdoor_server。
    
eventlet.backdoor.backdoor_server(sock, locals=None) 
     一个会在参数 
sock 上运行一个 backdoor server 的阻塞函数,接受连接,同时为每一个连接的客户端提供控制台。参数 
locals 是一个包含在解释器的 locals() 调用中的字典,可以方便的保存重要的应用变量。

转载于:https://www.cnblogs.com/Security-Darren/p/4172717.html

你可能感兴趣的文章
文本编程
查看>>
乔布斯走了。你还期待苹果吗?
查看>>
优先级
查看>>
Tomcat与Web服务器、应用服务器的关系
查看>>
用DFS实现全排列 & 八皇后问题
查看>>
深度学习博客
查看>>
Android总结篇系列:Android Service
查看>>
Android dumpsys命令的使用
查看>>
Linux Kernel系列一:开篇和Kernel启动概要
查看>>
BZOJ 2756: [SCOI2012]奇怪的游戏 网络流/二分
查看>>
master + worker模式的node多核解决框架——node-cluster
查看>>
Android如何实现超级棒的沉浸式体验
查看>>
使用node打造自己的命令行工具方法教程
查看>>
Express代理中间件问题与解决方案
查看>>
||和&&返回什么?
查看>>
linux在文件中查找指定字符串,然后根据查找结果来做进一步的处理
查看>>
在Oracle中删除所有强制性外键约束
查看>>
dhcp
查看>>
【R】R语言使用命令行参数 - [编程技巧(Program Skill)]
查看>>
经典算法题每日演练——第二题 五家共井
查看>>