Ecshop源代码分析总结

1:在配置文件中首先定义好连接数据库的配置,COOKIE的路径,域,SESSION的过期时间,默认使用的字符编码默认时区,等常用的数据,
2:在初始化文件 公共函数库 基础类class文件中加入一个IN_ECS常量判断,不允许用户直接访问
3:对用户输入表单的数据进行转义操作,首先判断php配置文件有没有开启get_magic_quotes_gpc 有没有开启如果没有开启则执行自定义转义字符串的函数,作用:1:可以简单解决sql注入攻击, 2:防止用户输入的HTML代码,从数据库取出来时使页面本来的样式改变(可能会在留言本的地方会出现)
4:使用一个目录存放 图片 flash 品牌的logo 印刷书籍类 压缩包 棉类 广告图片等资料;
5:定义一个专门输出错误信息的类,作为全站的错误,警告,提示的对象,使提示的错误信息与程序分离;
6:把所有的公共参数,从数据库中取出后写入一个缓存文件,变为静态输出;
7:判断每一个访问时搜索引擎蜘蛛的访问还是正常用户的访问,以免产生过多session数据,写入到数据库中,使数据库突然增大,导致网站的崩溃,如果是正常用户初始化session类,并写入数据库中session数据表中
8:增强session的安全,使用随机函数产生session_id,并带上基于当前时间微秒数的唯一id,经md5加密,使用客户端的ip地址,$_SERVER['HTTP_USER_AGENT'])作为密钥,再经过crc32函数产生一个32位字符串作为基础,使session安全得到增强,如果用户ip地址或者客户端发生变化,这个session就会失效,重新为客户端创建一个新的session
9:购物过程使用ajax进行,增加重要的数据隐蔽性
10:smarty产生缓存文件,也不能直接访问,每个缓存文件写着有一行直接访问则会退出,后面接着类似json代码字符串记录着模板文件的被修改时间,和文件本身的过期时间(和smarty本身原来的不同,ECSHOP修改了smarty),模板一旦改变,这个缓存文件将重新修改,或者与当前时间对比之后,是否到了过期时间,过期就重新修改这个缓存文件
11:将模板文件分为静态和动态部分,分别存放;
12:为保护数据库的安全,当初始化数据库类完成时,就把数据库的主机名或者ip,用户名,密码,的变量清空

13:在js的文件夹中发现一个js函数库可以把字符串转换成json代码

你可能感兴趣的:(PHP,ecshop,二次开发,php注意事项,开源商城)