31

一些需要禁用的PHP危险函数

phpinfo()
功能描述:输出 PHP 环境信息以及相关的模块、WEB 环境等信息。
危险等级:中

passthru()
功能描述:允许执行一个外部程序并回显输出,类似于 exec()。
危险等级:高

exec()
功能描述:允许执行一个外部程序(如 UNIX Shell 或 CMD 命令等)。
危险等级:高

system()
功能描述:允许执行一个外部程序并回显输出,类似于 passthru()。
危险等级:高

chroot()
功能描述:可改变当前 PHP 进程的工作根目录,仅当系统支持 CLI 模式
PHP 时才能工作,且该函数不适用于 Windows 系统。
危险等级:高

scandir()
功能描述:列出指定路径中的文件和目录。
危险等级:中

chgrp()
功能描述:改变文件或目录所属的用户组。
危险等级:高

chown()
功能描述:改变文件或目录的所有者。
危险等级:高

shell_exec()
功能描述:通过 Shell 执行命令,并将执行结果作为字符串返回。
危险等级:高

proc_open()
功能描述:执行一个命令并打开文件指针用于读取以及写入。
危险等级:高

proc_get_status()
功能描述:获取使用 proc_open() 所打开进程的信息。
危险等级:高

error_log()
功能描述:将错误信息发送到指定位置(文件)。
安全备注:在某些版本的 PHP 中,可使用 error_log() 绕过 PHP safe mode,
执行任意命令。
危险等级:低

ini_alter()
功能描述:是 ini_set() 函数的一个别名函数,功能与 ini_set() 相同。
具体参见 ini_set()。
危险等级:高

ini_set()
功能描述:可用于修改、设置 PHP 环境配置参数。
危险等级:高

ini_restore()
功能描述:可用于恢复 PHP 环境配置参数到其初始值。
危险等级:高

dl()
功能描述:在 PHP 进行运行过程当中(而非启动时)加载一个 PHP 外部模块。
危险等级:高

pfsockopen()
功能描述:建立一个 Internet 或 UNIX 域的 socket 持久连接。
危险等级:高

syslog()
功能描述:可调用 UNIX 系统的系统层 syslog() 函数。
危险等级:中

readlink()
功能描述:返回符号连接指向的目标文件内容。
危险等级:中

symlink()
功能描述:在 UNIX 系统中建立一个符号链接。
危险等级:高

popen()
功能描述:可通过 popen() 的参数传递一条命令,并对 popen() 所打开的文件进行执行。
危险等级:高

stream_socket_server()
功能描述:建立一个 Internet 或 UNIX 服务器连接。
危险等级:中

putenv()
功能描述:用于在 PHP 运行时改变系统字符集环境。在低于 5.2.6 版本的 PHP 中,可利用该函数
修改系统字符集环境后,利用 sendmail 指令发送特殊参数执行系统 SHELL 命令。
危险等级:高

禁用方法如下:
打开/etc/php.ini文件,
查找到 disable_functions ,添加需禁用的函数名,如下:
phpinfo,eval,passthru,exec,system,chroot,scandir,chgrp,chown,shell_exec,proc_open,proc_get_status,ini_alter,ini_alter,ini_restore,dl,pfsockopen,openlog,syslog,readlink,symlink,popepassthru,stream_socket_server,fsocket,fsockopen

31

Python把HTML实体编码和Unicode编码\u转为中文汉字

某模块把获取的汉字转为HTML实体了,形式如〹 解码方法如下:

这样就把实体码翻译成汉语了。

PS. 实体码中有的符号不是&#开头,而是&开头的,匹配的时候要注意。

PSS. 实体码最后的分号不能少!

30

以&#开头的是什么编码?

在网页中以&#开头的是HTML实体,一些字符在 HTML 中是预留的,拥有特殊的含义,比如小于号‘<’用于定义 HTML 标签的开始。如果我们希望浏览器正确地显示这些字符,我们必须在 HTML 源码中插入字符实体。详情请看http://baike.baidu.com/view/4757776.htm

如何把汉字转换成HTML实体呢?

汉字的HTML实体由三部分组成,”&#+ASCII+;“ 即可。

例如,把“最新” 转换成“&#26368;&#26032;”

另附:ASCII编码表在线查询地址:http://mrdede.com/?p=1416

27

解决微信开发报错:config:fail,invalid url domain

解决微信报错:config:fail,invalid url domain

进入微信公众号管理后台,设置 >> 公众号设置 >> 功能设置 >> JS接口安全域名,改成自己的域名。

下面这两项虽然不会引上标题提到的问题,但是也检查一下,修改成自己的域名。

设置 >> 公众号设置 >> 功能设置 >> 业务域名

设置 >> 公众号设置 >> 功能设置 >> 网页授权域名

20

js如何创建类(封装)

JS封装或者说是JS创建类,会有以下功能:

  • 构造器
  • 静态属性,静态方法
  • 共有属性,共有方法
  • 私有属性,私有方法

本文就说说如何用js实现对类的封装,实现上述功能,

1.一个简单的类

如何你觉得Ta不像类的话,那么你可以这样做

如果对于构造函数模式不太清楚的话,可以看看这里js创建对象之设计模式

2.一个复杂的类

有了上面的例子之后,我们在此基础之上就可以进行我们的完善了。

js中利用上述的模拟方法,实现了对类的创建,在此基础上,我们不安现状,想要对他进行封装,让他成为一个整体,更利于体现js的封装性。

3.封装js类

这里我们用闭包来实现,首先解释下闭包的概念。
闭包概念:一个函数有权访问另一个函数作用域中的变量,即在一个函数内部创建另一个函数

实现如下:

调用如下:

如上面的代码一样,我们就用js实现了类

总结:

  • 有些公共属性,方法,可以设置为静态的,这样可以在每次实例化的时候,不需要额外开辟内存资源,达到真正意义上的共享,
  • 有些公共的属性方法,只想在内部程序处理时候达到共享,则设置为,静态私有属性方法,
  • 有些公共的属性方法,想在实例对象中达到共享,则设置为prototype属性方法,

 

20

js创建对象之设计模式

封装类

1. 工厂模式

特点:

  • 内部创建对象,外部返回,相当于调用函数,
  • 对象无类型(比如其他oo语言,new一个对象,那个这个对象的构造函数就是对象类型)

2.构造函数模式

特点: Continue reading

20

iOS证书(.p12)和描述文件(.mobileprovision)申请

iOS有两种证书和描述文件:

证书类型 使用场景
开发(Development)证书和描述文件 用于开发测试,在HBuilder中打包后可在真机环境通过Safari调试
发布(Distribution)证书和描述文件 用于提交Appstore,在HBuilder中打包后可使用Application Loader提交到Appstore审核发布

 

准备环境

  • 必需要有苹果开发者账号,并且加入了“iOS Developer Program”
  • Mac OS 10.9以上系统(如果已经申请p12证书则不需要)

登录iOS Dev Center

打开网站iOS Dev Center
使用苹果开发者账号登录iOS Dev Center:
idc_login
登录成功后在页面右侧选择“Certificates, Identifiers & Profiles”: Continue reading

20

cer证书转p12证书

这是在ios开发applepay时的记录,

具体步骤如下:(苹果开发者中心生成的cer证书,这里就不再赘述了)

生成pem格式证书,需要有p12证书,1-5步,是关于p12证书的生成。

  1. p12证书怎么来呢?从苹果开发者中心生成的证书只有cer后缀的。找到mac上,打开钥匙串访问,如下图:SouthEast
  2. 选中所需要的证书,点开左边的三角符号导航,看下种类那里,一个是证书,证书下面是专用密钥,如下图:SouthEas
  3. 选中专用密钥,看下弹出菜单,选中 导出,如下图:SouthEast
  4. 此时弹出弹窗,存储为,填写你存储文件的路径,以.p12为后缀,位置为,你存储的路径,自己选,重点是文件格式,这里选择,个人信息交换.12 ,如下图:SouthEast
  5. 点击上个图的存储之后,会让输入导出文件的密码,输入后,一定要记着这个密码,以后用的到。密码输入完后,会安装所指定的存储位置,存储这个导出的p12证书。
13

URL编码表、URL编码对照表

URL 编码 – 从 %00 到 %8f

ASCII Value URL-encode ASCII Value URL-encode ASCII Value URL-encode
æ %00 0 %30 ` %60
%01 1 %31 a %61
%02 2 %32 b %62
%03 3 %33 c %63
%04 4 %34 d %64
%05 5 %35 e %65
%06 6 %36 f %66
%07 7 %37 g %67
backspace %08 8 %38 h %68
tab %09 9 %39 i %69
linefeed %0a : %3a j %6a
%0b ; %3b k %6b
%0c < %3c l %6c
c return %0d = %3d m %6d
%0e > %3e n %6e
%0f ? %3f o %6f
%10 @ %40 p %70
%11 A %41 q %71
%12 B %42 r %72
%13 C %43 s %73
%14 D %44 t %74
%15 E %45 u %75
%16 F %46 v %76
%17 G %47 w %77
%18 H %48 x %78
%19 I %49 y %79
%1a J %4a z %7a
%1b K %4b { %7b
%1c L %4c | %7c
%1d M %4d } %7d
%1e N %4e ~ %7e
%1f O %4f %7f
space %20 P %50 %80
! %21 Q %51 %81
%22 R %52 %82
# %23 S %53 ƒ %83
$ %24 T %54 %84
% %25 U %55 %85
& %26 V %56 %86
%27 W %57 %87
( %28 X %58 ˆ %88
) %29 Y %59 %89
* %2a Z %5a Š %8a
+ %2b [ %5b %8b
, %2c \ %5c Π%8c
- %2d ] %5d %8d
. %2e ^ %5e Ž %8e
/ %2f _ %5f %8f

URL 编码 – 从 %90 到 %ff

ASCII Value URL-encode ASCII Value URL-encode ASCII Value URL-encode
%90 À %c0 ð %f0
%91 Á %c1 ñ %f1
%92 Â %c2 ò %f2
%93 Ã %c3 ó %f3
%94 Ä %c4 ô %f4
%95 Å %c5 õ %f5
%96 Æ %c6 ö %f6
%97 Ç %c7 ÷ %f7
˜ %98 È %c8 ø %f8
%99 É %c9 ù %f9
š %9a Ê %ca ú %fa
%9b Ë %cb û %fb
œ %9c Ì %cc ü %fc
%9d Í %cd ý %fd
ž %9e Î %ce þ %fe
Ÿ %9f Ï %cf ÿ %ff
%a0 Ð %d0
¡ %a1 Ñ %d1
¢ %a2 Ò %d2
£ %a3 Ó %d3
%a4 Ô %d4
¥ %a5 Õ %d5
| %a6 Ö %d6
§ %a7 %d7
¨ %a8 Ø %d8
© %a9 Ù %d9
ª %aa Ú %da
« %ab Û %db
¬ %ac Ü %dc
¯ %ad Ý %dd
® %ae Þ %de
¯ %af ß %df
° %b0 à %e0
± %b1 á %e1
² %b2 â %e2
³ %b3 ã %e3
´ %b4 ä %e4
µ %b5 å %e5
%b6 æ %e6
· %b7 ç %e7
¸ %b8 è %e8
¹ %b9 é %e9
º %ba ê %ea
» %bb ë %eb
¼ %bc ì %ec
½ %bd í %ed
¾ %be î %ee
¿ %bf ï %ef