说说XIANWP.COM进度 – 以及Lnmp环境下的HTTPS配置CONF文件说明

昨天开始玩的WHMCS,想的是好歹也会简直做WordPress皮,WHMCS皮应该也不难。事实证明,确实不难。

XIANWP.COM我是想做 域名/空间Reseller,SS销售,不求赚钱,只是方便自用。

XIANWP.COM采用的WHMCS 6.0版本,皮肤使用自带的six模板,光替换了下蓝色为对应红色。

首页地址 https://xianwp.com/

商品地址 https://xianwp.com/cart.php

自我感觉改的不错,稍微难得地方就是购买https证书,花了好多时间比对各个商家。最终选了个便宜的,绿锁的证书。

Continue reading

PHP安全性函数

这些函数我还是经常使用的,非常好用 ~ 值得推荐

htmlentities

一个非常有用的用来处理输出的函数。它用来将一些可能导致XXS攻击的字符转化为html实体,这些字符在浏览器显示的时候是正常的,但是当你查看它的源代码时,实际上这些特殊字符必不会是他显示的那样,例如

输出:

John & ‘Adams’

源码:

John & ’Adams’;

输出:

<>

源码:

&lt;&gt;gt;

编码这些符号,有效地避免了XSS 攻击。

htmlspecialchars():

和上面的函数是一样的,但是它更常用一些,因为 htmlentities() 是将所有的有在html 标准中定义了的字符转换成他们对应的html实体,这样会是你的输出缺乏易读性(html 实体列表 http://www.w3school.com.cn/tags/html_ref_entities.html)。所以呢,使用 htmlspecialchars() 只是将一些 预定义的字符(就是会导致出现问题的)转换为html实体。例如:

& (和号) 成为 &

” (双引号) 成为 ”

‘ (单引号) 成为 ‘

< (小于) 成为 <

> (大于) 成为 >

所以,在一些项目中,我还是常常使用 htmlspecialchars() 来处理html 的输出的。他在安全这一方面做得更具体一些。

strip_tags():  一般在输出时使用,将HTML、XML 以及 PHP 的标签剥去。

函数原型: strip_tags(string,allow)

String 代表输入的字符串,allow 代表 不删除的标签,你可以通过 allow 来自定义过需要滤掉的标签

 

htmlspecialchars

和上面的函数是一样的,但是它更常用一些,因为 htmlentities() 是将所有的有在html 标准中定义了的字符转换成他们对应的html实体,这样会是你的输出缺乏易读性(html 实体列表 http://www.w3school.com.cn/tags/html_ref_entities.html)。所以呢,使用 htmlspecialchars() 只是将一些 预定义的字符(就是会导致出现问题的)转换为html实体。例如:

& (和号) 成为 &

” (双引号) 成为 ”

‘ (单引号) 成为 ‘

< (小于) 成为 <

> (大于) 成为 >

所以,在一些项目中,我还是常常使用 htmlspecialchars() 来处理html 的输出的。他在安全这一方面做得更具体

一些。

strip_tags

一般在输出时使用,将HTML、XML 以及 PHP 的标签剥去。

函数原型: strip_tags(string,allow)

String 代表输入的字符串,allow 代表 不删除的标签,你可以通过 allow 来自定义过需要滤掉的标签

磁盘读写和数据库读写哪个效率更高?磁盘读写与数据库的关系?为什么数据库读写速度比一般文件系统快

1.把IO动作尽可能的在自己的BUFFER里面实现, 对于必须的物理IO操作, 通过对要写入的数据的预先组织(预先读取, 按物理顺序排队, 分块写入, 小数据量写入等操作实现, 比如对P-LOG和LOGIALLOG). 2.对于物理IO动作, DB可以通过RAW/COOKED设备来实现. 在RAW设备上操作的话, DB自己管理设备以及数据在RAW设备上的存储细节,也就是说DB对于实际的物理存储是了解的. 比如说, 有2块DEVICE, 上面各自分别有2个RAWDEVIICES, 那么DB可以用2个THREAD在2个DEVICE上面同时动作, 对于同一DEVICE上面的LOGICALVOLUM, DB对数据的预先安排可以大大提高IO性能. 而文件系统上的IO由于有DOUBLE-BUFFER, 所以数据库所有对IO的优化基本上没作用(因为DB的BUFFER通常比OS的IOBUFFER大的多, 当DBBUFFER对应的OSBUFFER映射失败的时候, IO就要通过物理IO来完成了, 并且DB并不知道实际的IO操作在物理设备上的实现细节(比如文件系统在物理设备上的位置)). 3.所有物理的IO动作最后还是对应到了READ/WRITE操作, 只不过在RAW方式下的READ/WRITE是对设备直接操作的, 不需要借助于文件系统实现.

PHP从业一年总结下工作

PHP从业一年总结下: 关于PHP: 关于PHP本身就学会了一件事搭框架。最开始用ThinkPHP发现,实现一个小项目引入那么多不必要的文件,实在是杀鸡用牛刀。随即学会了__autoload实现基本的MVC框架,接下来的许多英文站项目就用自己写的框架。进公司后前几个项目只是为了读写XML以及解析HTML源码,框架引入phpQuery作为XML的读写器。后来调用频率高了,服务商会返回Busy状态,自己实现了一个文件形式的Cache类,通过把对象两次json_encode,存储在磁盘,且引入了Cache过期机制(其实很简单,文件头部写明expire time,create time,读到时候判断过期没有,如果过期了重写一下,弊端就是不经常访问的cache会保存在目录。我是在linux下面写了一个Cron定期删除cache …… 好土),熟悉了很多File操作的东西。最近需要用到一些管理功能,就在框架中加入了模仿ThinkPHP的DB操作类,写起代码来顺手了很多。 关于优化: 就会用Memcached,构造出特殊key,实现数据的高速读写,定时持久化到数据库,销毁对象,仅此而已。 关于前端: 说实话,公司中写的前端页面比较少,私活写的多一些。HTML5+CSS3手写能很熟练的依据设计稿写出响应式页面,私有一套适合自己用的CSS reset,当然也结合已有的css reset了。为方便一般会用jQuery,原生JS也会用,但不精通。同样帮朋友写过简单的EDM,了解了很多EDM必须要注意的技术点。也会Bootstrap,不过如果不是特别紧的项目,怕自己荒废了基本功,所以并不经常用。 关于Linux: 说来惭愧,L从上学时候就用,目前也就是chmod、chown、ls、find、grep、axel、lvm分区的vg*、lv*这些基本的命令的水平。 数据库: 老土的增删改查,基本JOIN,或者FULLTEXT/MATCH/AGAINST这些,最多用个事务确保数据并发读取一致。 一句话总结: 这一年赚的真TM少,学到的更少。