作者归档

附录A:配置选项-php安全基础

尽管本书的焦点是在于应用的安全性,但有一些配置选项是任何关心安全的开发者必需熟悉的。PHP的配置会影响你所写代码的行为以及你使用的技巧,必要时你需要稍稍负责一下应用程序以外的东西。
  PHP的配置主要由一个名为php.ini的文件所指定。该文件包含很多配置选项,每一项都会对PHP产生非常特定的影响。如果该文件不存在,或者该文件中的某选项不存在,则会使用默认值。
  如果你不知道php.ini文件所在的位置,你可以使用phpinfo( )来确定PHP中对该文件路径的定义:

  图A-1 所示的第六行(配置文件(php.ini)路[……]

Read more

第八章 共享主机-php安全基础

在共享主机环境中达到高级别的安全是不可能的。可是,通过小心的规划,你能避免一些常见的错误并防止一些最常用的攻击手段。虽然有些方法需要你的主机提供商提供协助,但也有一些其他的你自己就能做到的方法。
本章涉及伴随共享主机而产生的风险。尽管同样的安全措施可以用于防止很多攻击手段,但为了认识到问题的范围,多看一些范例是很有用的。
由于本书的焦点是应用的安全性而不是架构的安全性,我不会讨论加强服务器环境安全的技巧。如果你是一位主机提供商并需要更多关于架构安全方面的信息,我推荐下面一些资源:

Apache服务器安全, Ivan Ristic著 (O’Reilly出版社)

http://su[……]

Read more

第七章 验证与授权-php安全基础

很多Web应用被其糟糕的身份验证与授权机制所困扰。本章主要讨论相关这些机制的漏洞,传授一些帮助你不犯通病的方法。我将通过一些例子进一步说明这些方法,但请注意不要把这些示例与其上下文割裂开来看,理解其中包含的原则和方法是很重要的。只有到那个时候你才能对它们进行正确运用。
  通过验证我们可以确定一个用户的身份。典型的做法是简单地使用用户名和密码进行检查。这样我们就能确定登录用户是一个授权用户。
  身份验证,常被称为访问控制,是一种你能用来保护对受限资源的访问及确认一个用户是否有权访问特定资源的方法。例如,很多WEB应用会有只对授权用户开放的资源、只对系统管理员开放的资源以及对所有用户开放的资源。
 [……]

Read more

第六章 文件与命令-php安全基础

本章主要讨论伴随着文件与shell命令的使用所产生的风险。PHP有大量的文件系统函数,与直接执行shell命令只有少量的区别。在本章中,我会着重强调开发者在使用这些功能时常犯的错误。
  总的来说,伴随这些功能所产生的风险类似于很多本书已提及的风险——使用被污染数据具有灾难性的副作用。尽管漏洞是不同的,但是用来对付它们的方法都是你已学过的方法。
6.1. 文件系统跨越
  无论你用什么方法使用文件,你都要在某个地方指定文件名。在很多情况下,文件名会作为fopen()函数的一个参数,同时其它函数会调用它返回的句柄:

  当你把被污染[……]

Read more

第五章 包含-php安全基础

随着PHP项目的增大,软件设计与组织在代码的可维护性上起着越来越重要的作用。尽管对于什么是最好的编程方式众说纷纭(关于面向对象优点的争论常常发生),但基本上每个开发者会理解和欣赏模块化设计的价值。
  本章说明了使用包含时会面临的安全问题。脚本中include或require的文件把你的应用分成了逻辑上分离的两部分。我还会着重强调和纠正一些常见的误解,特别是有关于如何编程的问题。
小提示
  当使用include和require时,应该使用include_once与require_once来包含。
5.1. 源码暴露
  关于包含的一个重要问题是源代码的暴露。产生这个问题主要原因是下面的常见情况:
l [……]

Read more

第四章 会话与 Cookies-php安全基础

本章主要讨论会话和有状态的Web应用的内在风险。你会首先学习状态、cookies、与会话;然后我会讨论关于cookie盗窃、会话数据暴露、会话固定、及会话劫持的问题及防范它们的方法。
正如大家知道的,HTTP是一种无状态的协议。这说明了两个HTTP请求之间缺乏联系。由于协议中未提供任何让客户端标识自己的方法,因此服务器也就无法区分客户端。
虽然HTTP无状态的特性还是有一些好处,毕竟维护状态是比较麻烦的,但是它向需要开发有状态的Web应用的开发人员提出了前所未有的挑战。由于无法标识客户端,就不可能确认用户是否已登录,在购物车中加入商品,或者是需要注册。
一个最初由网景公司构思的超强解决方[……]

Read more

第三章 数据库及SQL-php安全基础

PHP的作用常常是沟通各种数据源及用户的桥梁。事实上,有些人认为PHP更像是一个平台而不是一个编程语言。基于这些原因,PHP频繁用于与数据库的交流。
  PHP可以很好的胜任这个任务,其原因特别是由于它能与很多种数据库连接。下面列举了PHP支持的小部分数据库:

DB2
ODBC
SQLite
InterBase
Oracle
Sybase
MySQL
PostgreSQL
DBM

  与任何的远程数据存储方式相同,数据库本身也存在着一些风险。尽管数据库安全不是本书讨论的问题,但数据库安全是需要时刻注意的,特别是关于如何对待从数据库读取作为输入的数据的问题。
  正如第一章所讨论的,所有输入必需要进行过滤,同时所有的输[……]

Read more

第二章 表单及URL-php安全基础

本章主要讨论表单处理,同时还有在处理来自表单和URL数据时需要加以注意的最常见的攻击类型。你可以学到例如跨站脚本攻击(XSS)及跨站请求伪造(CSRF)等攻击方式,同时还能学到如何手工制作欺骗表单及HTTP请求。
  通过本章的学习,你不仅可以看到这些攻击方法的实例,而且可以学到防范它们的方法。

小提示
  跨站脚本攻击漏洞的产生主要是由于你误用了被污染的数据。虽说大多数应用的主要输入源是用户,但任何一个远程实体都可以向你的软件输入恶意数据。本章中所描述的多数方法直接适于用于处理任何一个远程实体的输入,而不仅仅是用户。关于输入的过滤详见第一章。
2.1. 表单与数据
       在典型的PHP应用开发[……]

Read more

第一章 简介-php安全基础

Essential PHP Security -PHP安全基础(中文版)
本书的原版为:
Essential PHP Security 
By Chris Shiflett 
Publisher: O’Reilly 
Pub Date: October 2005 
ISBN: 0-596-00656-X 
Pages: 124 

翻译:
PHP China :alex (烂柯居士)
译者序:本书短小精捍,雅俗共赏,为了方便大家阅读中文,本人做了翻译,在www.phpchina.cn的原创和翻译专栏连载,第一稿翻译上有不通及谬误之处,请提出修改意见,谢了。
烂柯居士 上
如有问题,请Email: xuhuanchun@[……]

Read more

解决 PHPExcel 长数字串显示为科学计数

解决 PHPExcel 长数字串显示为科学计数

在excel中如果在一个默认的格中输入或复制超长数字字符串,它会显示为科学计算法,例如身份证号码,解决方法是把表格设置文本格式或在输入前加一个单引号。

使用PHPExcel来生成excel,也会遇到同样的问题,解决方法有三种:
1、设置单元格为文本

更多的格式可以在PHPExcel/Style/NumberFormat.php中找到。注意:上述的设置对长数字字符串还是以文本方式来显示科学计数法的结果,原因可能php在处理大数字时采用的科学计数法。

2、在设置值的时候[……]

Read more

DBShop使用Gzip方式压缩页面

在模块中的module.php文件中加如下代码

然后在该文件中加入compressOutput方法

这是DBShop程序的处理方式,没有写的多么的复杂,简单易懂就可以了。

PHP开发者应了解的24个库(转发)

作为一个PHP开发者,现在是一个令人激动的时刻。每天有许许多多有用的库分发出来,在Github上很容易发现和使用这些库。下面是我曾经遇到过最酷的24个库。你最喜欢的库没有在这个列表里面?那就在评论中分享吧!

1. Dispatch – 微框架

Dispatch是一个PHP小框架。它并没有给你完整的MVC设置,但你可以定义URL规则和方法,以便更好组织应用程序。这对API、简单的站点或原型来说是完美的。

你可以匹配特定类型的HTTP请求和路径,渲染视图或做更多事情。如果你合并Dispatch和其他框架,那你就可以拥有一[……]

Read more

zend studio 整合 svn

http://jingyan.baidu.com/article/29697b9132b52eab20de3ca8.html

DBShop电子商务系统 V0.9.1 Beta 版本发布

http://bbs.dbshop.net/forum.php?mod=viewthread&tid=157

本次发布的版本更新内容如下

修正 前台编辑会员信息时,会员中心首页头像显示为空
修正 后台在模板切换设置时,出现延时问题,导致页面为切换显示的处理
修正 后台订单根据订单编号检索时产生错误的问题
修正 在ZF2框架最新版本中,有些查询可能因为条件导致出错问题
修正 删除后台数据库备份点时,当同一备份点有多个备份文件时,不能完全删除的问题
修正 后台备份数据库,然后倒入该备份后,可能导致商品id重复问题
修正 后台在编辑保存管理员信息时,添加时间变为当前编[……]

Read more

PhpStorm快捷键

http://www.cnblogs.com/jikey/p/3491798.html

 

http://blog.db89.org/phpstorm-default-shortcut/

 

http://hudeyong926.iteye.com/blog/1734768

return top