Posts Tagged PHP

paypal跳转 for Zen Cart亦开发并测试完成

paypal跳转模块for Zen Cart已开发并试用一个多月,配置简单,暂不提供paypal防漏单功能,其实也没什么必要,因为paypal后台是可以查看到通知失败的定单信息并重新发送通知的

paypal跳转模块主要是为了paypal反查仿牌网站,而将所有仿牌站的paypal支付全部经过中性产跳转过去,在paypal网站上是看不到任何的关于仿牌站及仿牌产品的信息的

但由于业界有句话说,用paypal就等着死吧,总有一天会变180天的,所以,慎用。。。除非您对您的产品质量及客服等有足够的信心

paypal跳转需要提供非仿牌中转站一个,支持php及mysql即可,客户端配置极其简单易用,有意者联系本人QQ:165482921

  • Share/Bookmark

Tags: , , , , , ,

ECPSS跳转接口 for Zen Cart

上个月开发的ECPSS跳转接口经过一个多月的试用后效果很不错,随着一些小站的逐渐出单,ECPSS跳转可以加无限网站而不再在官方限制的仅仅六个站的优势体现出来了

该ECPSS跳转模块由本人开发,功能简单易用,造合zen cart 1.38以上版本。ECPSS中转站程序类弄不限,只需支持php及mysql数据库;客户端(即实际产品站)只需更新几个ECPSS接口文件,并作相应设置即可,使用的是ecpss新版接口,具有防漏单(提前保存定单)和post客户数据到ecpss网站的功能,极大方便了定单的管理和客户的支付过程

ECPSS跳转模块,售价2500元,提供所有技术支持,包括送普通中转站一个及其一年的空间使用权,一年后你们可以选择迁出中转站或以500/年续费;提供的所有代码都未加密,包安装配置调试到可用为止,并培训你方技术人员如何配置维护及增加新的产品站;如果由你方提供中转站,价格1500元,亦提供所有服务,无任何限制

有意者联系QQ:165482921

  • Share/Bookmark

Tags: , , , , ,

WordPress部份主题在傲游下源文件乱码问题

其实也就是个别主题的文件编码问题

这些问题在firefox或IE下是正常的,就是用傲游不正常,并不影响SEO和GOOGLE抓取,只是访客用傲游查看源文件时,中文全部会变成乱码

解决方法,下载主题文件到本地,用UE打开并保存为utf-8格式即可

一般地,更改主题文件里的header.php为utf-8就行了

  • Share/Bookmark

Tags: , , , ,

关于paypal漏单的一点问题

paypal漏单是一直存在的问题,我这边的同行一般用的是zen-cart,之前的大公司也因此去开发了防漏单模块,不是很好用,原理是提前保存了定单,由于技术的不成熟,存在的问题是定单重复的太多,甚至影响支付也可能

但paypal也不傻,至少我一直认为漏单是不应该存在的

一位朋友的全部漏了,原因是他误删了ipn_main_handler.php文件,这个文件的不存在导致了客户的付款都不成功(他说没成功的),paypal也发来了信件,警告说即时付款通知失败

然后补齐了这个文件,能收钱了,但全部漏单,我用paypal sanbox测试了,是正常的

这应该不是程序或者说技术上的问题了

查看了paypal的帐号邮件,发现有一封paypal发来的,说即时付款通知功能已禁用,内容和上次的警告信差不多

也就是说,当你的ipn_main_handler.php不存在,也就是通知接口不存在时,paypal试了几次,发现实在通不了时,会直接禁用了你的这个功能,不再尝试了,或许是为了性能考虑

解决办法:

登陆paypal,到用户信息->即时付款通知习惯设定,会发现即时付款通知已被关闭

重新开启就行了,默认的paypal帐号应该是开启的,但现在开启,需要填写通告URL,这个东西,我们填现在挂这个帐号的主要网站的地址就行了吧,我以为这东西paypal应该会自动生成,只不过要重开时,它还是要你填,一个不需要的需要

然后,在“即时付款通知记录”页面,可以查看成功或失败或被禁用的通知,并重发它们,或许,这样,漏单问题就不存在了

因为知通成功,一定要在产品站端有个反馈,只要程序不是很烂,应该可以保证生成定单的

  • Share/Bookmark

Tags: , ,

easy populate执行时页面空白的解决

zen cart网站在产品数据量大时,用easy populate导出完整批量表,有时会变空白页面,没有表格下载的提示

经过测试后(主要是在产品循环时echo些东西,让它报错),发现是php内存限制造成的

解决方法,加大PHP的memory_limit参数

  • Share/Bookmark

Tags:

kloxo启动错误:cannot restore segment prot after reloc: Permission denied

按之前写的一键安装kloxo安装好kloxo后,发现重启动时会出错,服务不正常,SSH进去使用

service kloxo restart命令重启kloxo服务,有一大批乱码,主要的错误信息如下:

Failed loading /usr/local/lxlabs/ext/lib/Zend/lib/Optimizer-2.5.7/php-5.2.x/ZendOptimizer.so:  /usr/local/lxlabs/ext/lib/Zend/lib/Optimizer-2.5.7/php-5.2.x/ZendOptimizer.so: cannot restore segment prot after reloc: Permission denied

解决方法:

这是SELinux搞的鬼,解决办法有如下两个
1. 使用chcon 命令
示例: chcon -t texrel_shlib_t    /usr/local/Zend/lib/Optimizer-3.3.3/php-5.2.x/ZendOptimizer.so
2. 禁止掉SELinux
更改/etc/sysconfig/selinux 文件的内容为 SELINUX=disabled

再次重启kloxw,报错如下:

Fatal error: Call to undefined function  mysql_connect() in /usr/local/lxlabs/kloxo/httpdocs/htmllib/phplib/lib/sqlite.php on line 34

mysql_connect()函数找不到了,重启服务器,一切正常

  • Share/Bookmark

Tags: , , , , , , , , , , , ,

wordpress3.0发布,支持多站点

wordpress3.0发布了,提供了对多站点的支持

先升级到wordpress3.0,目前只有英文版,中文版过段时间应该会推出

wordpress3.0默认没有开启多站点的功能,需要手工设置,方法是在wp-config.php文件里添加

define(‘WP_ALLOW_MULTISITE’, true);

然后进入后台即可看到Super Admin功能,再根据提示创建子站点目录和添加配置信息即可

可能需要主机的泛解析和泛子域绑定到同个目录的功能

比如使用主机的DNS,则其DNS会解析*.domain.com到同个IP(IX支持,Bluehost不支持)

泛解析不支持的话,我们可以采用其它DNS来解决,手动添加一个*的A记录

而泛子域到同个目录的功能,则麻烦多了,IX是支持的,Bluehost估计就需要一个个手动加上去了

  • Share/Bookmark

Tags: , , , , , , , ,

php 实时显示输出

ob_end_flush();

flush();

  • Share/Bookmark

Tags:

nginx文件类型错误解析漏洞(80sec)

漏洞介绍:nginx是一款高性能的web服务器,使用非常广泛,其不仅经常被用作反向代理,也可以非常好的支持PHP的运行。80sec发现其中存在一个较为严重的安全问题,默认情况下可能导致服务器错误的将任何类型的文件以PHP的方式进行解析,这将导致严重的安全问题,使得恶意的攻击者可能攻陷支持php的nginx服务器。
漏洞分析:nginx默认以cgi的方式支持php的运行,譬如在配置文件当中可以以

location ~ \.php$ {
root html;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;
include fastcgi_params;
}

的方式支持对php的解析,location对请求进行选择的时候会使用URI环境变量进行选择,其中传递到后端Fastcgi的关键变量SCRIPT_FILENAME由nginx生成的$fastcgi_script_name决定,而通过分析可以看到$fastcgi_script_name是直接由URI环境变量控制的,这里就是产生问题的点。而为了较好的支持PATH_INFO的提取,在PHP的配置选项里存在cgi.fix_pathinfo选项,其目的是为了从SCRIPT_FILENAME里取出真正的脚本名。
那么假设存在一个http://www.80sec.com/80sec.jpg,我们以如下的方式去访问

将会得到一个URI
/80sec.jpg/80sec.php
经过location指令,该请求将会交给后端的fastcgi处理,nginx为其设置环境变量SCRIPT_FILENAME,内容为
/scripts/80sec.jpg/80sec.php
而在其他的webserver如lighttpd当中,我们发现其中的SCRIPT_FILENAME被正确的设置为
/scripts/80sec.jpg
所以不存在此问题。
后端的fastcgi在接受到该选项时,会根据fix_pathinfo配置决定是否对SCRIPT_FILENAME进行额外的处理,一般情况下如果不对fix_pathinfo进行设置将影响使用PATH_INFO进行路由选择的应用,所以该选项一般配置开启。Php通过该选项之后将查找其中真正的脚本文件名字,查找的方式也是查看文件是否存在,这个时候将分离出SCRIPT_FILENAME和PATH_INFO分别为
/scripts/80sec.jpg和80sec.php
最后,以/scripts/80sec.jpg作为此次请求需要执行的脚本,攻击者就可以实现让nginx以php来解析任何类型的文件了。

http://www.80sec.com/80sec.jpg/80sec.php

 

POC: 访问一个nginx来支持php的站点,在一个任何资源的文件如robots.txt后面加上/80sec.php,这个时候你可以看到如下的区别:

访问http://www.80sec.com/robots.txt
HTTP/1.1 200 OK
Server: nginx/0.6.32
Date: Thu, 20 May 2010 10:05:30 GMT
Content-Type: text/plain
Content-Length: 18
Last-Modified: Thu, 20 May 2010 06:26:34 GMT
Connection: keep-alive
Keep-Alive: timeout=20
Accept-Ranges: bytes

访问访问http://www.80sec.com/robots.txt/80sec.php
HTTP/1.1 200 OK
Server: nginx/0.6.32
Date: Thu, 20 May 2010 10:06:49 GMT
Content-Type: text/html
Transfer-Encoding: chunked
Connection: keep-alive
Keep-Alive: timeout=20
X-Powered-By: PHP/5.2.6

其中的Content-Type的变化说明了后端负责解析的变化,该站点就可能存在漏洞。

漏洞厂商:http://www.nginx.org

解决方案:

我们已经尝试联系官方,但是此前你可以通过以下的方式来减少损失
关闭cgi.fix_pathinfo为0
或者
if ( $fastcgi_script_name ~ \..*\/.*php ) {
return 403;
}

  • Share/Bookmark

Tags: , , , , , , , , , , ,

WHM 让PHP支持GD库

弄了个zen cart后台验证码,却才发现个别虚拟主机不支持GD库

比如我自己所在用的WHM主机

想重新编译PHP但又怕影响现有网站,或根本就乱成一团糟

也查了网上提供的办法,就是直接进SSH重新编译

最后才发出WHM系统本身有apache升级功能

Software >> EasyApache (Apache Update)

这里可以重新设置并编译apache+php环境,几乎是平滑升级,很强大

  • Share/Bookmark

Tags: , , , , , ,