手机浏览 RSS 2.0 订阅 膘叔的简单人生 , 腾讯云RDS购买 | 超便宜的Vultr , 注册 | 登陆
浏览模式: 标准 | 列表分类:PHP

为windows的WEB服务器添加高性能的FTP组件

在windows服务器里面,如果我们要用FTP函数,速度应该是很慢的,而且效率不高,如果有大量文件需要上传,用自带的FTP函数,恐怕是要死人的吧。
windows服务器,windows哦,可以装N多软件的windows哦。虽然不建议在服务器上装上很多软件,但是也可以装一些FTP软件的嘛。这里以cuteftp举例。
cuteftp安装完毕后,会在软件目录里有一个Scripts目录,现在的版本不象很久以前的了,如今的版里只有一个Sample.vbs,记得几年前的cuteftp里面会有各种各样的vbs文件的。
闲话不多说,打开vbs文件,内容为:

ASP/Visual Basic代码
  1. 'This default template script is in VBScript. You can write scripts in your language of choice and save them with the proper extension, or use your an editor specific to that language.  
  2. 'See the TESDK help file for more details on how the scripting feature works and for information on each supported method and property.  
  3. 'You must have Windows Scripting Host installed for the COM enabled engine to work. Run the Transfer Engine once to register it (as a COM object) on the target system.  
  4. 'If you're having problems with running scripts while not logged in, or when trying to run them using MS scheduler, refer to our online knowledgebase for help (http://www.globalscape.com/support)  
  5. 'Look into c:\temp folder to observe local activity (for testing purposes) or right click on the Transfer Engine icon in the systray and select "show current transfers"  
  6. 'This sample script performs an anonymous login to ftp://ftp.globalscape.net  
  7.    'First declare a variable called Mysite. This will hold the reference to the TE COM object.  
  8.    Dim MySite  
  9.    'Create a connection object and assign it to the variable  
  10.    Set MySite = CreateObject("CuteFTPPro.TEConnection")  
  11.    ' Now set each property for the site connection   
  12.    ' You can omit this section to use the default values, but you should at least specify the Host  
  13.    'The default Protocol is FTP, however SFTP (SSH2), FTPS (SSL), HTTP, and HTTPS can also be used)  
  14.    MySite.Protocol = "FTP"  
  15.    MySite.Host = "ftp.globalscape.com"  
  16.    'following lines are optional since the default is anonymous if no login and password are defined  
  17.    MySite.Login = "anonymous"  
  18.    MySite.Password = "user@user.com"  
  19.    'if necessary, use the UseProxy method and ProxyInfo or SocksInfo properties to connect through a proxy server  
  20.    MySite.UseProxy = "BOTH"  
  21.    'now connect to the site (also called called implicitly when most remote methods are called)  
  22.    MySite.Connect  
  23.    'perform some logic to verify that the connection was made successfully  
  24.    If (Not Cbool(MySite.IsConnected)) Then    
  25.       MsgBox "Could not connect to: " & MySite.Host & "!"  
  26.       Quit(1)  
  27.    End If  
  28.    'The script will now check to see if the local folder c:\temp exists and will create it if necessary  
  29.    If (Not (MySite.LocalExists("c:\temp"))) Then  
  30.       MySite.CreateLocalFolder "c:\temp"  
  31.    End If  
  32.    'Change TE's local working folder to to c:\temp  
  33.    MySite.LocalFolder = "c:\temp"  
  34.    'Check for existence of remote folder "/pub/cuteftp"  
  35.    b = MySite.RemoteExists("/pub/cuteftp/")  
  36.    If (Not CBool(b)) Then  
  37.       'Verify existence of remote folder  
  38.       MsgBox "Remote folder not found!. Please make sure that the Pub folder exists on the remote site"  
  39.       Quit(1)  
  40.    End If  
  41.    'Now download the index file to the local destination folder  
  42.    MySite.Download "/pub/cuteftp/index.txt"  
  43.    'Complete.  Show the status of this transfer.  
  44.    MsgBox "Task done, final status is '" + MySite.Status + "'"  
  45.   MySite.Disconnect  
  46.   MySite.Close  
  47. 'End of sample script. You can save you script and then run it by either selecting it from the Tools > Run Script menu or by double clicking on the script file in Windows  

看到这样的文件,你应该知道如何调用一些FTP软件自带的方法了吧?现在,我们用PHP模拟一遍。。。。。
请看详细内容

» 阅读全文

Tags: ftp, com, windows, cuteftp, vbs

佛家思想与PHP开发

今天听了点课,感悟还是有点的。软件开发会时不时的遇到点瓶颈,这其实与佛家思想还是有点关系的,当然,也许是我硬套上的吧。

佛家参惮有一种说法:看山是山,看水是水;看山不是山,看水不是水;看山还是山,看水还是水。这里说的是佛家修行的三个层次,也叫三重境界,即初期看山是山,中期有悟时,山就不再是简单的山了,最后彻悟,返朴归真,山还是山,但已经不是原来的那个山了,升华了,空灵了。把这用在游记上也是很合适的。走马观花,照象机式的记录,见山是山,见水是水,见什么写什么,流水帐,千篇一律,大同小异,这是初级阶段。再上一个层次,进到文学的创作,那就得看山不是山,看水不是水。那是什么?是山水背后的东西,附在山水之上的东西,山不再是单纯岩石泥土加草木的立体,水也不是简单的流动的液体了。

软件开发也差不多,刚开始学程序的时候,看山是山,因为这时候思想还没有成形,对于程序的理解都是停在表面上,没有什么特别的概念。随着编程时间的增长,和能力的进步,这时候看待程序、架构都比较的深层次了,于是就升级成为看山不是山,看水不是水的境界。这道坎其实很难跨越,等到真正跨越这一层,然后所以的编程语言、架构在眼里又变成那样的浅显,于是又回到了最初的看山是山看水是水的境界。

随便说说而己。不必生搬硬套

Tags: 佛家思想, 感悟, 开发, php

开发人员的七种心态——支付宝杨云

 今天下午和同事参加了ThinkSite举办的技术交流会,期间由某知名猎头公司猎头进行了行业介绍和职业规划简介,但最关心的还是支付宝架构师杨云的介绍。

杨云认为:

1、开发者应当尝试不同的应用开发,以便可以了解、熟悉各种流程
2、始终保持初学者心态。在看到别人的开发、代码时,不管怎么样,总应该抱着学习的心态,不能因为自己在某领域强过别人就对别人采用批判的眼光。三人行必有我师。达者为先。讲的都是这种道理吧。
3、建立完善的学习体系。当你看到或者搜索到你需要的代码或者程序时,不应该存着拿来主义,而应该做到知其然,并知其所以然。只有这样,你才是真正的学习到了东西,否则永远就只是处在代码层阶段,而永远无法深入。
4、少用工具代替思考,工具之所以是工具,只是为了方便开发,而不能将工具代替你自身的思考。开发过程中,总会出现这样那样的BUG,工具只是方便你将BUG定位,而不一定能完整的将BUG查找出来,这时候不能完全依赖工具,而应该检查自己的代码。
5、不要错过向高手学习的机会。记住,是主动向高手学习。生活当中、开发当中,遇到高手的机会可能会很多,但能不能抓住机会向别人请教,那就要靠自己了。毕竟,别人不会主动问你有什么不会的。
6、搞清技术的来龙去脉。编程技术的发展经历了大约三十年左右,在这三十年里,产生了各种不同的思想,也有很多人根据同样的思想而发展出了不同的派系,只有了解清楚该项技术产生的背景,就不会让你在选择的时候感到迷惑。举例说AJAX,本来就是属于一个很老的技术,但现在ajax的框架有一大堆,你会选择哪个?如果你自己真正的了解了AJAX的核心的内容,你还会在于你选择哪一个吗?当然你在分析不同的代码后,可能会选择一个你认为相对效率较高的一样,可是这也证明了你基本搞清楚它的来龙去脉 了。
7、形成自己的开发的世界观。相信自己,不要迷惑,要有自己的世界观。这是杨云的意见和建议。个人还是认为:世界观、人生观、价值观,这虽然是在初中学政治的时候用到,但用在开发上,也确实有它的独到之处。这三个观念树立好,也可以使自己在往后的开发生涯中不会感到迷惘。这可是自己选择的路。。。。

附上杨云的演讲形象:

大小: 207.75 K
尺寸: 200 x 300
浏览: 1796 次
点击打开新窗口浏览全图

会后,多人对世界观提出了自己的看法,当然我的看法就在上面。同时参与了一些讨论,感慨于目前的培训机构和培训人员及被培训人员的思维。虽然谈了不少,但总感觉少了点什么?文人相轻,在搞技术的人身上也能得到完美的体现。或许就其实就是杨云所说的第二条吧。没有一个初学者的心态,如何能够正确树立和形成一个完善的软件开发世界观?

学习,沉淀,尽可能的帮助其他人,或者这也是程序员的一种快乐吧。如果这种快乐能够被传递,那才是一件很快乐的事。

Tags: 开发, thinksite, 支付宝, 心态, 世界观

修复:使用chrome在Sablog里面发博文

 原来我一直以为不能够在chrome下的Sablog里面使用fck editor,直到coolcode.cn的andot在群里说改了点东西就支持了。

原来fckeditor.js里面有 

JavaScript代码
  1. this.enableSafari =false;  
  2. this.enableOpera = false;  

于是,将这两行改成了true; 

然后修改那两个PHP文件,在IsCompatible方面里面的判断加上

PHP代码
  1. else if ( strpos($sAgent'Opera/') !== false )  
  2. {  
  3.     $fVersion = (float)substr($sAgentstrpos($sAgent'Opera/') + 6, 4) ;  
  4.     return ($fVersion >= 9.5) ;  
  5. }  
  6. else if ( preg_match( "|AppleWebKit/(\d+)|i"$sAgent$matches ) )  
  7. {  
  8.     $iVersion = $matches[1] ;  
  9.     return ( $matches[1] >= 522 ) ;  
  10. }  

 于是,世界清静多了,菜单也出来了。

感谢andot给我们提供的方法。。。

不愿意手工改的朋友,可以直接到:

在 Google 浏览器(Chrome)中能够使用 SaBlog-X 发文章的方法
  1. http://www.coolcode.cn/show-305-1.html  

 进行下载。good Luck for you

Tags: chrome, google浏览器, sablog, coolcode, fckeditor

让我吃惊的:phpinfo跨站脚本漏洞

从未想过,phpinfo页面居然有这么大的漏洞,在我想来,这纯粹是一个输出页面,怎么会有漏洞呢?
看了

漏洞说明: php是一款被广泛使用的编程语言,可以被嵌套在html里用做web程序开发。phpinfo()是用来显示当前php环境的一个函数,许多站点和程序 都会将phpinfo放在自己的站点上或者在程序里显示,但是phpinfo里存在一些安全问题,导致精心构造数据就可以产生一个跨站脚本漏洞,可以被用 来进行攻击。

漏洞成因: phpinfo页面对输入的参数都做了详细的过滤,但是没有对输出的进行charset的指定,而在一些浏览器里如IE7里,你可以让它自动选择编码或者通过一个iframe页面给它指定编码,这样就可以饶过phpinfo的过滤而产生一个跨站脚本漏洞。
漏洞来源: http://www.80sec.com/release/phpinfo-xss.txt
漏洞利用: 利用代码如下:


<html>
<head>
<META HTTP-EQUIV="CONTENT-TYPE" CONTENT="text/html; charset=UTF-7">
</head>
<body>
<iframe src="http://www.80sec.com/phpinfo.php?+ADw-SCRIPT+AD4-alert(document.domain);+ADw-/SCRIPT+AD4-=1">

以上代码在IE7+php 5.2.6测试成功。phpinfo页面的xss甚至比其他页面更加危险,因为如果有phpinfo的存在,恶意攻击者可以利用phpinfo的输出bypass如httponly和一些基础认证。

漏洞影响: 影响所有版本的php和浏览器IE7
漏洞修补: 建议暂时删除站点的phpinfo页面避免被人利用。

太吃惊了

Tags: 漏洞, xss, phpinfo, 脚本, 跨站