2006年08月08日 星期二 15:57
我现在做的程序,逐渐的由C/C++开始转到Python方向,同时软件也由当初的单机版本转为目前的还不完善的网络版本。 由于我们软件的特性,部分功能必须使用自己的客户端完成,浏览器实现起来非常困难。 但是现在业务逻辑部分越来越复杂,虽然使用Python来实现的,但是每次都要更新,实现起来感觉还是不方便,同时因为需要保密等原因,有些业务逻辑不能下载到客户端的硬盘上(防君子不防小人而已)。 我就在想,有没有一种方法,可以实现我在调用的时候,发现本地被调用的对象不存在,自动从指定的服务器上去取,然后直接在本地进行调用,相当于把服务器的目录link到了本地硬盘上。这种方法与RPC不同的地方,方法的执行是在客户端,而一般RPC是在服务器端执行,然后返回结果给客户端。 不知道这个做法实现起来复杂度怎么样? -- My Blog >> http://leejd.cndev.org My QQ >> 9847243 -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.exoweb.net/pipermail/python-chinese/attachments/20060808/e8ac1e8d/attachment.html
2006年08月08日 星期二 17:09
Gerald Lee wrote: > 我现在做的程序,逐渐的由C/C++开始转到Python方向,同时软件也由当初的单 > 机版本转为目前的还不完善的网络版本。 > 由于我们软件的特性,部分功能必须使用自己的客户端完成,浏览器实现起来非 > 常困难。 > 但是现在业务逻辑部分越来越复杂,虽然使用Python来实现的,但是每次都要更 > 新,实现起来感觉还是不方便,同时因为需要保密等原因,有些业务逻辑不能下 > 载到客户端的硬盘上(防君子不防小人而已)。 > 我就在想,有没有一种方法,可以实现我在调用的时候,发现本地被调用的对象 > 不存在,自动从指定的服务器上去取,然后直接在本地进行调用,相当于把服务 > 器的目录link到了本地硬盘上。这种方法与RPC不同的地方,方法的执行是在客 > 户端,而一般RPC是在服务器端执行,然后返回结果给客户端。 > > 不知道这个做法实现起来复杂度怎么样? > 你要实现的好象和RPC没有关系. 你只是想源代码不放在本地, 每次执行时从远程载入模块. 这个只要写一个import hook就可以了. http://www.python.org/doc/2.3/whatsnew/section-pep302.html#section-pep302 可以对传输过来的代码加密. 然后用一个extension module来实现这个import hook, 在其中可以先解密,再载入.
2006年08月08日 星期二 17:19
不太明白,把业务逻辑放在服务器端不可以吗?在客户端可以只放UI的部分. On 8/8/06, Gerald Lee <leejd80 at gmail.com> wrote: > 我现在做的程序,逐渐的由C/C++开始转到Python方向,同时软件也由当初的单机版本转为目前的还不完善的网络版本。 > 由于我们软件的特性,部分功能必须使用自己的客户端完成,浏览器实现起来非常困难。 > 但是现在业务逻辑部分越来越复杂,虽然使用Python来实现的,但是每次都要更新,实现起来感觉还是不方便,同时因为需要保密等原因,有些业务逻辑不能下载到客户端的硬盘上(防君子不防小人而已)。 > 我就在想,有没有一种方法,可以实现我在调用的时候,发现本地被调用的对象不存在,自动从指定的服务器上去取,然后直接在本地进行调用,相当于把服务器的目录link到了本地硬盘上。这种方法与RPC不同的地方,方法的执行是在客户端,而一般RPC是在服务器端执行,然后返回结果给客户端。 > > 不知道这个做法实现起来复杂度怎么样? > > > -- > My Blog >> http://leejd.cndev.org > My QQ >> 9847243 > _______________________________________________ > python-chinese > Post: send python-chinese at lists.python.cn > Subscribe: send subscribe to > python-chinese-request at lists.python.cn > Unsubscribe: send unsubscribe to > python-chinese-request at lists.python.cn > Detail Info: > http://python.cn/mailman/listinfo/python-chinese > > -- "No More" Mark's Blog @ www.throughworks.com
2006年08月08日 星期二 17:29
业务逻辑放在服务器端没问题,可是俺的业务逻辑处理的数据,动不动就是M级别的,网络传输是一个很大的问题,所以才会说可否将远端的对象搞到本地来调用。同时,在本地处理的话,客户端可以帮服务器节省资源:) 在06-8-8,郭丹 <mark.guo at gmail.com> 写道: > > 不太明白,把业务逻辑放在服务器端不可以吗?在客户端可以只放UI的部分. > > On 8/8/06, Gerald Lee <leejd80 at gmail.com> wrote: > > 我现在做的程序,逐渐的由C/C++开始转到Python方向,同时软件也由当初的单机版本转为目前的还不完善的网络版本。 > > 由于我们软件的特性,部分功能必须使用自己的客户端完成,浏览器实现起来非常困难。 > > > 但是现在业务逻辑部分越来越复杂,虽然使用Python来实现的,但是每次都要更新,实现起来感觉还是不方便,同时因为需要保密等原因,有些业务逻辑不能下载到客户端的硬盘上(防君子不防小人而已)。 > > > 我就在想,有没有一种方法,可以实现我在调用的时候,发现本地被调用的对象不存在,自动从指定的服务器上去取,然后直接在本地进行调用,相当于把服务器的目录link到了本地硬盘上。这种方法与RPC不同的地方,方法的执行是在客户端,而一般RPC是在服务器端执行,然后返回结果给客户端。 > > > > 不知道这个做法实现起来复杂度怎么样? > > > > > > -- > > My Blog >> http://leejd.cndev.org > > My QQ >> 9847243 > > _______________________________________________ > > python-chinese > > Post: send python-chinese at lists.python.cn > > Subscribe: send subscribe to > > python-chinese-request at lists.python.cn > > Unsubscribe: send unsubscribe to > > python-chinese-request at lists.python.cn > > Detail Info: > > http://python.cn/mailman/listinfo/python-chinese > > > > > > > -- > "No More" > Mark's Blog @ www.throughworks.com > > _______________________________________________ > python-chinese > Post: send python-chinese at lists.python.cn > Subscribe: send subscribe to python-chinese-request at lists.python.cn > Unsubscribe: send unsubscribe to python-chinese-request at lists.python.cn > Detail Info: http://python.cn/mailman/listinfo/python-chinese > > -- My Blog >> http://leejd.cndev.org My QQ >> 9847243 -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.exoweb.net/pipermail/python-chinese/attachments/20060808/61e6b990/attachment.html
2006年08月08日 星期二 17:46
Gerald Lee wrote: > 业务逻辑放在服务器端没问题,可是俺的业务逻辑处理的数据,动不动就是M级 > 别的,网络传输是一个很大的问题,所以才会说可否将远端的对象搞到本地来调 > 用。同时,在本地处理的话,客户端可以帮服务器节省资源:) > > 看看我上一封信. 你需要的只是不把Python代码存在本地, 而是每次启动时从远程 载入. 你可以把这个载入过程用C写, 加一加密.
2006年08月08日 星期二 19:29
多谢多谢! 通过http方式的调用已经成功了,参考代码: from ihooks import ModuleImporter, ModuleLoader, PY_SOURCE from urllib2 import urlopen, HTTPError from urlparse import urljoin import re, tempfile, shutil, os pattern = re.compile(r"^(https?://[^ ]+)") url_path = ["http://eikeon.com/2002/06/16/", "http://eikeon.com/2002/06/15/", 'http://www.gridok.com/'] class HTTPModuleLoader(ModuleLoader): def find_module(self, name, path = None): stuff = ModuleLoader.find_module(self, name, path) if stuff: return stuff if path: return if self.verbose: print "looking for: ", name, path for base in url_path: url = urljoin(base, name + ".py") try: file = urlopen(url) name = tempfile.mktemp() stream = open(name, 'wb') stream.write(file.read()) stream.close file = open(name, 'r') return file, url, ('.py', 'r', 1) except HTTPError, he: print "Did not find: ", url print he return None class HTTPModuleImporter(ModuleImporter): def __init__(self): hooks, verbose = (None, 1) loader = HTTPModuleLoader(hooks, verbose) ModuleImporter.__init__(self, loader, verbose) HTTPModuleImporter().install() #以上代码参考:http://www.koders.com/python/fid385DFC52BED3B940DA5EE53EBFDF70D388266600.aspx?s=ihooks #以下代码仅供测试用 import logger log = logger.initlog() log.info("hello from http") 在06-8-8,jacob <jacob at exoweb.net> 写道: > > Gerald Lee wrote: > > > 我现在做的程序,逐渐的由C/C++开始转到Python方向,同时软件也由当初的单 > > 机版本转为目前的还不完善的网络版本。 > > 由于我们软件的特性,部分功能必须使用自己的客户端完成,浏览器实现起来非 > > 常困难。 > > 但是现在业务逻辑部分越来越复杂,虽然使用Python来实现的,但是每次都要更 > > 新,实现起来感觉还是不方便,同时因为需要保密等原因,有些业务逻辑不能下 > > 载到客户端的硬盘上(防君子不防小人而已)。 > > 我就在想,有没有一种方法,可以实现我在调用的时候,发现本地被调用的对象 > > 不存在,自动从指定的服务器上去取,然后直接在本地进行调用,相当于把服务 > > 器的目录link到了本地硬盘上。这种方法与RPC不同的地方,方法的执行是在客 > > 户端,而一般RPC是在服务器端执行,然后返回结果给客户端。 > > > > 不知道这个做法实现起来复杂度怎么样? > > > 你要实现的好象和RPC没有关系. > 你只是想源代码不放在本地, 每次执行时从远程载入模块. 这个只要写一个import > hook就可以了. > http://www.python.org/doc/2.3/whatsnew/section-pep302.html#section-pep302 > > 可以对传输过来的代码加密. 然后用一个extension module来实现这个import > hook, 在其中可以先解密,再载入. > _______________________________________________ > python-chinese > Post: send python-chinese at lists.python.cn > Subscribe: send subscribe to python-chinese-request at lists.python.cn > Unsubscribe: send unsubscribe to python-chinese-request at lists.python.cn > Detail Info: http://python.cn/mailman/listinfo/python-chinese > -- My Blog >> http://leejd.cndev.org My QQ >> 9847243 -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.exoweb.net/pipermail/python-chinese/attachments/20060808/55d10ead/attachment.html
2006年08月09日 星期三 10:33
Gerald Lee wrote: > 多谢多谢! > 通过http方式的调用已经成功了,参考代码: > > from ihooks import ModuleImporter, ModuleLoader, PY_SOURCE > from urllib2 import urlopen, HTTPError > from urlparse import urljoin > > import re, tempfile, shutil, os > > pattern = re.compile(r"^(https?://[^ ]+)") > url_path = ["http://eikeon.com/2002/06/16/", > "http://eikeon.com/2002/06/15/ ", 'http://www.gridok.com/' > <http://www.gridok.com/%27>] > > class HTTPModuleLoader(ModuleLoader): > > def find_module(self, name, path = None): > stuff = ModuleLoader.find_module(self, name, path) > if stuff: > return stuff > if path: > return > > if self.verbose: print "looking for: ", name, path > for base in url_path: > url = urljoin(base, name + ".py") > try: > file = urlopen(url) > name = tempfile.mktemp() > stream = open(name, 'wb') > stream.write(file.read()) > stream.close > file = open(name, 'r') > return file, url, ('.py', 'r', 1) > except HTTPError, he: > print "Did not find: ", url > print he > return None > > > class HTTPModuleImporter(ModuleImporter): > def __init__(self): > hooks, verbose = (None, 1) > > loader = HTTPModuleLoader(hooks, verbose) > > ModuleImporter.__init__(self, loader, verbose) > > > HTTPModuleImporter().install() > > #以上代码参考:http: > //www.koders.com/python/fid385DFC52BED3B940DA5EE53EBFDF70D388266600.aspx?s=ihooks > #以下代码仅供测试用 > import logger > > log = logger.initlog() > log.info("hello from http") 这样防君子倒是可以, 不过对于小人来说还是弱了点. 中间完全可以截取你的http 通讯, 得到你的业务逻辑. 我前面建议用C来写载入的逻辑并且加密, 就是为了防止这个. 如果再加一层壳就 更保险些了. :)
2006年08月09日 星期三 10:37
是远程打开一个网址获取他的内容么? -----邮件原件----- 发件人: python-chinese-bounces at lists.python.cn [mailto:python-chinese-bounces at lists.python.cn] 代表 jacob 发送时间: 2006年8月9日 10:33 收件人: python-chinese at lists.python.cn 主题: Re: [python-chinese] 远程调用的一个想法 Gerald Lee wrote: > 多谢多谢! > 通过http方式的调用已经成功了,参考代码: > > from ihooks import ModuleImporter, ModuleLoader, PY_SOURCE > from urllib2 import urlopen, HTTPError > from urlparse import urljoin > > import re, tempfile, shutil, os > > pattern = re.compile(r"^(https?://[^ ]+)") > url_path = ["http://eikeon.com/2002/06/16/", > "http://eikeon.com/2002/06/15/ ", 'http://www.gridok.com/' > <http://www.gridok.com/%27>] > > class HTTPModuleLoader(ModuleLoader): > > def find_module(self, name, path = None): > stuff = ModuleLoader.find_module(self, name, path) > if stuff: > return stuff > if path: > return > > if self.verbose: print "looking for: ", name, path > for base in url_path: > url = urljoin(base, name + ".py") > try: > file = urlopen(url) > name = tempfile.mktemp() > stream = open(name, 'wb') > stream.write(file.read()) > stream.close > file = open(name, 'r') > return file, url, ('.py', 'r', 1) > except HTTPError, he: > print "Did not find: ", url > print he > return None > > > class HTTPModuleImporter(ModuleImporter): > def __init__(self): > hooks, verbose = (None, 1) > > loader = HTTPModuleLoader(hooks, verbose) > > ModuleImporter.__init__(self, loader, verbose) > > > HTTPModuleImporter().install() > > #以上代码参考:http: > //www.koders.com/python/fid385DFC52BED3B940DA5EE53EBFDF70D388266600.aspx?s=i hooks > #以下代码仅供测试用 > import logger > > log = logger.initlog() > log.info("hello from http") 这样防君子倒是可以, 不过对于小人来说还是弱了点. 中间完全可以截取你的http 通讯, 得到你的业务逻辑. 我前面建议用C来写载入的逻辑并且加密, 就是为了防止这个. 如果再加一层壳就 更保险些了. :) _______________________________________________ python-chinese Post: send python-chinese at lists.python.cn Subscribe: send subscribe to python-chinese-request at lists.python.cn Unsubscribe: send unsubscribe to python-chinese-request at lists.python.cn Detail Info: http://python.cn/mailman/listinfo/python-chinese
2006年08月09日 星期三 10:47
snort¼àÌý ²»¹ýÊÇ·ñ¿ÉÒÔÓÃhttpsÌæ´ú£¿ Best Regards, Zachary Wu (Îâ°~ÀÚ) Software Engineer, Enterprise Content Management FVT, IBM China Software Development Lab Tel: +86 10 82782244-3235. Fax: 82782244-2886 Tie Line: 915-2244-3235 Internet: xiaoleiw at cn.ibm.com Notes ID: Xiao Lei Wu/China/Contr/IBM at IBMCN Address: 8/F, Block A, Power Creative Building, No.1, East Road, Shang Di, Beijing 100085, P.R. China python-chinese-bounces at lists.python.cn дÓÚ 2006-08-09 10:37:31: > ÊÇÔ¶³Ì´ò¿ªÒ»¸öÍøÖ·»ñÈ¡ËûµÄÄÚÈÝô? > > -----ÓʼþÔ¼þ----- > ·¢¼þÈË: python-chinese-bounces at lists.python.cn > [mailto:python-chinese-bounces at lists.python.cn] ´ú±í jacob > ·¢ËÍʱ¼ä: 2006Äê8ÔÂ9ÈÕ 10:33 > ÊÕ¼þÈË: python-chinese at lists.python.cn > Ö÷Ìâ: Re: [python-chinese] Ô¶³Ìµ÷ÓõÄÒ»¸öÏë·¨ > > Gerald Lee wrote: > > > ¶àл¶àл£¡ > > ͨ¹ýhttp·½Ê½µÄµ÷ÓÃÒѾ³É¹¦ÁË£¬²Î¿¼´úÂ룺 > > > > from ihooks import ModuleImporter, ModuleLoader, PY_SOURCE > > from urllib2 import urlopen, HTTPError > > from urlparse import urljoin > > > > import re, tempfile, shutil, os > > > > pattern = re.compile(r"^(https?://[^ ]+)") > > url_path = ["http://eikeon.com/2002/06/16/", > > "http://eikeon.com/2002/06/15/ ", 'http://www.gridok.com/' > > <http://www.gridok.com/%27>] > > > > class HTTPModuleLoader(ModuleLoader): > > > > def find_module(self, name, path = None): > > stuff = ModuleLoader.find_module(self, name, path) > > if stuff: > > return stuff > > if path: > > return > > > > if self.verbose: print "looking for: ", name, path > > for base in url_path: > > url = urljoin(base, name + ".py") > > try: > > file = urlopen(url) > > name = tempfile.mktemp() > > stream = open(name, 'wb') > > stream.write(file.read()) > > stream.close > > file = open(name, 'r') > > return file, url, ('.py', 'r', 1) > > except HTTPError, he: > > print "Did not find: ", url > > print he > > return None > > > > > > class HTTPModuleImporter(ModuleImporter): > > def __init__(self): > > hooks, verbose = (None, 1) > > > > loader = HTTPModuleLoader(hooks, verbose) > > > > ModuleImporter.__init__(self, loader, verbose) > > > > > > HTTPModuleImporter().install() > > > > #ÒÔÉÏ´úÂë²Î¿¼£ºhttp: > > > //www.koders.com/python/fid385DFC52BED3B940DA5EE53EBFDF70D388266600.aspx?s=i > hooks > > #ÒÔÏ´úÂë½ö¹©²âÊÔÓà > > import logger > > > > log = logger.initlog() > > log.info("hello from http") > > ÕâÑù·À¾ý×Óµ¹ÊÇ¿ÉÒÔ, ²»¹ý¶ÔÓÚСÈËÀ´Ëµ»¹ÊÇÈõÁ˵ã. ÖмäÍêÈ«¿ÉÒÔ½ØÈ¡ÄãµÄhttp > ͨѶ, µÃµ½ÄãµÄÒµÎñÂß¼. > ÎÒÇ°Ã潨ÒéÓÃCÀ´Ð´ÔØÈëµÄÂß¼²¢ÇÒ¼ÓÃÜ, ¾ÍÊÇΪÁË·ÀÖ¹Õâ¸ö. Èç¹ûÔÙ¼ÓÒ»²ã¿Ç¾Í > ¸ü±£ÏÕЩÁË. :) > _______________________________________________ > python-chinese > Post: send python-chinese at lists.python.cn > Subscribe: send subscribe to python-chinese-request at lists.python.cn > Unsubscribe: send unsubscribe to python-chinese-request at lists.python.cn > Detail Info: http://python.cn/mailman/listinfo/python-chinese > > _______________________________________________ > python-chinese > Post: send python-chinese at lists.python.cn > Subscribe: send subscribe to python-chinese-request at lists.python.cn > Unsubscribe: send unsubscribe to python-chinese-request at lists.python.cn > Detail Info: http://python.cn/mailman/listinfo/python-chinese -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.exoweb.net/pipermail/python-chinese/attachments/20060809/2a53e41a/attachment.html
2006年08月09日 星期三 10:52
Xiao Lei Wu wrote: > snort监听 > 不过是否可以用https替代? > > Best Regards, > 可以直接得到他存在本地的这段用来载入模块的Python代码(源码或字节码形式). 阅读以后就知道他用什么url去拿, 然后直接去拿就是了. 所以这段载入代码最好不要用Python写, 或者即使是用Python写, 也要用pyrex转 换成extension module的形式. > > python-chinese-bounces at lists.python.cn 写于 2006-08-09 10:37:31: > > > 是远程打开一个网址获取他的内容么? > > > > -----邮件原件----- > > 发件人: python-chinese-bounces at lists.python.cn > > [mailto:python-chinese-bounces at lists.python.cn] 代表 jacob > > 发送时间: 2006年8月9日 10:33 > > 收件人: python-chinese at lists.python.cn > > 主题: Re: [python-chinese] 远程调用的一个想法 > > > > Gerald Lee wrote: > > > > > 多谢多谢! > > > 通过http方式的调用已经成功了,参考代码: > > > > > > from ihooks import ModuleImporter, ModuleLoader, PY_SOURCE > > > from urllib2 import urlopen, HTTPError > > > from urlparse import urljoin > > > > > > import re, tempfile, shutil, os > > > > > > pattern = re.compile(r"^(https?://[^ ]+)") > > > url_path = ["http://eikeon.com/2002/06/16/", > > > "http://eikeon.com/2002/06/15/ ", 'http://www.gridok.com/' > > > <http://www.gridok.com/%27>] > > > > > > class HTTPModuleLoader(ModuleLoader): > > > > > > def find_module(self, name, path = None): > > > stuff = ModuleLoader.find_module(self, name, path) > > > if stuff: > > > return stuff > > > if path: > > > return > > > > > > if self.verbose: print "looking for: ", name, path > > > for base in url_path: > > > url = urljoin(base, name + ".py") > > > try: > > > file = urlopen(url) > > > name = tempfile.mktemp() > > > stream = open(name, 'wb') > > > stream.write(file.read()) > > > stream.close > > > file = open(name, 'r') > > > return file, url, ('.py', 'r', 1) > > > except HTTPError, he: > > > print "Did not find: ", url > > > print he > > > return None > > > > > > > > > class HTTPModuleImporter(ModuleImporter): > > > def __init__(self): > > > hooks, verbose = (None, 1) > > > > > > loader = HTTPModuleLoader(hooks, verbose) > > > > > > ModuleImporter.__init__(self, loader, verbose) > > > > > > > > > HTTPModuleImporter().install() > > > > > > #以上代码参考:http: > > > > > > //www.koders.com/python/fid385DFC52BED3B940DA5EE53EBFDF70D388266600.aspx?s=i > > hooks > > > #以下代码仅供测试用 > > > import logger > > > > > > log = logger.initlog() > > > log.info("hello from http") > > > > 这样防君子倒是可以, 不过对于小人来说还是弱了点. 中间完全可以截取你的http > > 通讯, 得到你的业务逻辑. > > 我前面建议用C来写载入的逻辑并且加密, 就是为了防止这个. 如果再加一层壳就 > > 更保险些了. :) >
2006年08月09日 星期三 11:50
但是这样加载就只能加载为模块的方式,如果我在url上面是一个package的话,怎么样在本地载入为一个package呢? 在06-8-9,jacob <jacob at exoweb.net> 写道: > > Gerald Lee wrote: > > > 多谢多谢! > > 通过http方式的调用已经成功了,参考代码: > > > > from ihooks import ModuleImporter, ModuleLoader, PY_SOURCE > > from urllib2 import urlopen, HTTPError > > from urlparse import urljoin > > > > import re, tempfile, shutil, os > > > > pattern = re.compile(r"^(https?://[^ ]+)") > > url_path = ["http://eikeon.com/2002/06/16/", > > "http://eikeon.com/2002/06/15/ ", 'http://www.gridok.com/' > > <http://www.gridok.com/%27>] > > > > class HTTPModuleLoader(ModuleLoader): > > > > def find_module(self, name, path = None): > > stuff = ModuleLoader.find_module(self, name, path) > > if stuff: > > return stuff > > if path: > > return > > > > if self.verbose: print "looking for: ", name, path > > for base in url_path: > > url = urljoin(base, name + ".py") > > try: > > file = urlopen(url) > > name = tempfile.mktemp() > > stream = open(name, 'wb') > > stream.write(file.read()) > > stream.close > > file = open(name, 'r') > > return file, url, ('.py', 'r', 1) > > except HTTPError, he: > > print "Did not find: ", url > > print he > > return None > > > > > > class HTTPModuleImporter(ModuleImporter): > > def __init__(self): > > hooks, verbose = (None, 1) > > > > loader = HTTPModuleLoader(hooks, verbose) > > > > ModuleImporter.__init__(self, loader, verbose) > > > > > > HTTPModuleImporter().install() > > > > #以上代码参考:http: > > > //www.koders.com/python/fid385DFC52BED3B940DA5EE53EBFDF70D388266600.aspx?s=ihooks > > #以下代码仅供测试用 > > import logger > > > > log = logger.initlog() > > log.info("hello from http") > > 这样防君子倒是可以, 不过对于小人来说还是弱了点. 中间完全可以截取你的http > 通讯, 得到你的业务逻辑. > 我前面建议用C来写载入的逻辑并且加密, 就是为了防止这个. 如果再加一层壳就 > 更保险些了. :) > _______________________________________________ > python-chinese > Post: send python-chinese at lists.python.cn > Subscribe: send subscribe to python-chinese-request at lists.python.cn > Unsubscribe: send unsubscribe to python-chinese-request at lists.python.cn > Detail Info: http://python.cn/mailman/listinfo/python-chinese > -- My Blog >> http://leejd.cndev.org My QQ >> 9847243 -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.exoweb.net/pipermail/python-chinese/attachments/20060809/f0ef08ed/attachment.htm
2006年08月09日 星期三 11:58
其实url地址可以是一个cgi的,需要通过认证才可以得到py的内容 2006/8/9, jacob <jacob at exoweb.net>: > > Xiao Lei Wu wrote: > > > snort监听 > > 不过是否可以用https替代? > > > > Best Regards, > > > 可以直接得到他存在本地的这段用来载入模块的Python代码(源码或字节码形式). > 阅读以后就知道他用什么url去拿, 然后直接去拿就是了. > 所以这段载入代码最好不要用Python写, 或者即使是用Python写, 也要用pyrex转 > 换成extension module的形式. > > > > > python-chinese-bounces at lists.python.cn 写于 2006-08-09 10:37:31: > > > > > 是远程打开一个网址获取他的内容么? > > > > > > -----邮件原件----- > > > 发件人: python-chinese-bounces at lists.python.cn > > > [mailto:python-chinese-bounces at lists.python.cn] 代表 jacob > > > 发送时间: 2006年8月9日 10:33 > > > 收件人: python-chinese at lists.python.cn > > > 主题: Re: [python-chinese] 远程调用的一个想法 > > > > > > Gerald Lee wrote: > > > > > > > 多谢多谢! > > > > 通过http方式的调用已经成功了,参考代码: > > > > > > > > from ihooks import ModuleImporter, ModuleLoader, PY_SOURCE > > > > from urllib2 import urlopen, HTTPError > > > > from urlparse import urljoin > > > > > > > > import re, tempfile, shutil, os > > > > > > > > pattern = re.compile(r"^(https?://[^ ]+)") > > > > url_path = ["http://eikeon.com/2002/06/16/", > > > > "http://eikeon.com/2002/06/15/ ", 'http://www.gridok.com/' > > > > <http://www.gridok.com/%27>] > > > > > > > > class HTTPModuleLoader(ModuleLoader): > > > > > > > > def find_module(self, name, path = None): > > > > stuff = ModuleLoader.find_module(self, name, path) > > > > if stuff: > > > > return stuff > > > > if path: > > > > return > > > > > > > > if self.verbose: print "looking for: ", name, path > > > > for base in url_path: > > > > url = urljoin(base, name + ".py") > > > > try: > > > > file = urlopen(url) > > > > name = tempfile.mktemp() > > > > stream = open(name, 'wb') > > > > stream.write(file.read()) > > > > stream.close > > > > file = open(name, 'r') > > > > return file, url, ('.py', 'r', 1) > > > > except HTTPError, he: > > > > print "Did not find: ", url > > > > print he > > > > return None > > > > > > > > > > > > class HTTPModuleImporter(ModuleImporter): > > > > def __init__(self): > > > > hooks, verbose = (None, 1) > > > > > > > > loader = HTTPModuleLoader(hooks, verbose) > > > > > > > > ModuleImporter.__init__(self, loader, verbose) > > > > > > > > > > > > HTTPModuleImporter().install() > > > > > > > > #以上代码参考:http: > > > > > > > > > > //www.koders.com/python/fid385DFC52BED3B940DA5EE53EBFDF70D388266600.aspx?s=i > > > hooks > > > > #以下代码仅供测试用 > > > > import logger > > > > > > > > log = logger.initlog() > > > > log.info("hello from http") > > > > > > 这样防君子倒是可以, 不过对于小人来说还是弱了点. 中间完全可以截取你的http > > > 通讯, 得到你的业务逻辑. > > > 我前面建议用C来写载入的逻辑并且加密, 就是为了防止这个. 如果再加一层壳就 > > > 更保险些了. :) > > > > _______________________________________________ > python-chinese > Post: send python-chinese at lists.python.cn > Subscribe: send subscribe to python-chinese-request at lists.python.cn > Unsubscribe: send unsubscribe to python-chinese-request at lists.python.cn > Detail Info: http://python.cn/mailman/listinfo/python-chinese > -- My Blog >> http://leejd.cndev.org My QQ >> 9847243 -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.exoweb.net/pipermail/python-chinese/attachments/20060809/71ab99ee/attachment.html
2006年08月09日 星期三 14:30
Gerald Lee wrote: > 其实url地址可以是一个cgi的,需要通过认证才可以得到py的内容 > 直接看你本地加载模块的代码, 用户名,密码都能拿到的.
Zeuux © 2025
京ICP备05028076号