沉于思考,默默学习!

你不能预知明天,但你可以利用今天。你不能样样顺利,但你可以事事尽力!

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

随笔分类 -  php

php安全,性能使用技巧
摘要:很久没有写东西了,一直要开始,一直没有动手,在线工具24mail推出有尽8个年头了,chacuo.net工具更新很少,期间经常收到一些朋友询问与咨询,对站点一些工具给与肯定,本身作为码农的我,线上很多工具都是来自于工作需求,想想码农的我需要使用,大家肯定也需要的。啰嗦了,今天介绍一款 最新工具 24log.chacuo.net 在线dump http request raw工具。先说说使用场景把,... 阅读全文
posted @ 2020-08-31 23:25 程默 阅读(660) 评论(1) 推荐(1) 编辑

摘要:Base64编码,是我们程序开发中经常使用到的编码方法。它是一种基于用64个可打印字符来表示二进制数据的表示方法。它通常用作存储、传输一些二进制数据编码方法!也是MIME(多用途互联网邮件扩展,主要用作电子邮件标准)中一种可打印字符表示二进制数据的常见编码方法!它其实只是定义用可打印字符传输内容一... 阅读全文
posted @ 2014-05-18 23:04 程默 阅读(37372) 评论(1) 推荐(1) 编辑

摘要:做web开发,我们经常会做代码走查,很多时候,我们都会抽查一些核心功能,或者常会出现漏洞的逻辑。随着技术团队的壮大,组员技术日益成熟。 常见傻瓜型SQL注入漏洞、以及XSS漏洞。会越来越少,但是我们也会发现一些新兴的隐蔽性漏洞偶尔会出现。这些漏洞更多来自开发人员,对一个函数、常见模块功能设计不足,遗留下的问题。以前我们能够完成一些功能模块,现在要求是要安全正确方法完成模块才行。 接下来,我会分享一些常见功能模块,由于设计原因导致漏洞出现。下面,我们先看下,读取文件型功能漏洞。 我们先看下下面一段代码,通过用户输入不同目录,包含不同文件<?php///读取模块名称$mod = isset( 阅读全文
posted @ 2013-06-06 22:56 程默 阅读(6368) 评论(3) 推荐(0) 编辑

摘要:看我上两篇,我们知道,上存漏洞常见有,文件名检测漏洞,还有就是文件格式检查漏洞。 另外还有个一个,就是保存文件存在漏洞。这类漏洞,主要是可以读取用户传入路径名称,采用不正确的过滤方法,导致恶意用户,将文件上存到非预期的地方,带来安全隐患。其实,我们抓住几个地方即可,我们先来分析下,既然用户要上存文件,而且文件将是多种多样格式;可能有的文件内容与用户传入格式不一致,有的文件内容还夹杂木马代码。 那么,我们让用户上存文件,跟站点文件做一个分别授权,做隔离。让保存上存目录独立开来,目录权限只读不能执行这一步从系统设计加以授权,无论你上次什么文件,都不可能执行到。就算我不做任何检测,你的文件都上存到这 阅读全文
posted @ 2013-06-05 18:40 程默 阅读(1301) 评论(0) 推荐(0) 编辑

摘要:通过上一篇文章,我们知道wed上存漏洞,最常见一种是文件名检测漏洞,接下来,我们看看另外一种漏洞,上存文件类型漏洞,这也是一种较为容易出现问题。我当时就想,既然我知道我需要允许上存什么样的文件,那么,我就只允许你上存该文件。只要我文件类型判断准确了,你想上存能够执行的代码。我都给阻止掉,不就行了吗? 这确实,是个好的方法,但是我们再做的时候,往往会出现下面一些问题。这里我们看下常见实现的php代码。 这里,常见两个问题是:1.读取文件type,直接做文件类型判断2.通过工具分析文件格式,以此来确认文件类型问题一:读取文件type,判断文件类型if(isset($_FILES['img& 阅读全文
posted @ 2013-06-04 14:38 程默 阅读(1366) 评论(0) 推荐(1) 编辑

摘要:我们通过前篇:web上存漏洞及原理分析、防范方法学习,已经知道后端获取服务器变量,很多来自客户端传入的。跟普通的get,post没有什么不同。下面我们看看,常见出现漏洞代码。1、检测文件类型,并且用用户上存文件名保存if(isset($_FILES['img'])){ $file = save_file($_FILES['img']); if($file===false) exit('上存失败!'); echo "上存成功!",$file;}function check_file($img){ ///读取文件 if($img[ 阅读全文
posted @ 2013-06-03 09:08 程默 阅读(1430) 评论(1) 推荐(0) 编辑

摘要:通过上一篇,获取用户Ip地址通用方法常见安全隐患(HTTP_X_FORWARDED_FOR),我们已经意 识到直接从http_x_forwarded_for中读取用户IP,跟我们直接从一个get,post值中读取其实没有两样。web参数检测里面一个基本原则:“一切输入都是有害的”,因此,只要是输入我们就需要进行过滤。安全过滤后的getIP函数 function getIP() { $realip = ''; //设置默认值 if (isset($_SERVER['HTTP_X_FORWARDED_FOR'])) { $realip = $_SERVER[' 阅读全文
posted @ 2013-05-31 16:41 程默 阅读(4585) 评论(3) 推荐(0) 编辑

摘要:分析过程这个来自一些项目中,获取用户Ip,进行用户操作行为的记录,是常见并且经常使用的。 一般朋友,都会看到如下通用获取IP地址方法。function getIP() { if (isset($_SERVER['HTTP_X_FORWARDED_FOR'])) { $realip = $_SERVER['HTTP_X_FORWARDED_FOR']; } elseif (isset($_SERVER['HTTP_CLIENT_IP'])) { $realip = $_SERVER['HTTP_CLIENT_IP']; } else 阅读全文
posted @ 2013-05-29 23:30 程默 阅读(44615) 评论(2) 推荐(4) 编辑

摘要:我还是觉得自己开辟搭建一个独立blog平台,我常用linux服务器,因此选择php环境。 这样,我可以选择的开源博客系统会有很多。这里不对博客系统进行纵向对比。我说下,对wordpress认识过程,一些自己的体会。纯属代表个人意见,欢迎讨论!刚开始,下载一套wordpress 3.5,然后一路安装下来,比较简单,跟常见其它一些开源平台查不到。 只要配置好数据库连接,然后一路下一步,分把钟就可以做好。 也是由于,对wordpress 早已经有所耳闻,而且感觉它名气很大,这类系统中佼佼者。首先看看它数据库结构吧11张表,实现了强大的博客功能,首先表示不简单。现在很多cms 基本上都是40-50个表 阅读全文
posted @ 2013-05-27 11:27 程默 阅读(23956) 评论(6) 推荐(3) 编辑

摘要:起因:最近遇到一件事情,一个接口能够接收传入编码可能是utf-8,gbk 两种。 做过编码方面转换的同学应该知道的,是什么编码不会在字符串里面有什么标记位的。不过utf-8编码有特殊性,因此可以通过正则表达式来检查。只要发现是utf-8编码。就转换,不是utf-8就当gbk处理。 编码一些常见问题可以查看:由web程序出现乱码开始挖掘(Bom头、字符集与乱码)行动:知道这个原理,马上领任务,开始工作。 想到php版本有个mbstring模块可以进行编码检测转换:问题:问题: 目前编码集合只有这样6个维度:php得到维度代码运行结果: 通过上面6个维度得到得到对应的正则表达式:[\x01-\x7 阅读全文
posted @ 2011-02-19 21:59 程默 阅读(7948) 评论(14) 推荐(4) 编辑

摘要:好久没有写帖子了。一直忙着新的项目。 最近,做验证码程序,一直想做一个简洁大方,自动识别比较困难的。 通过这些时候整理搜集,发现一般做法有以下几种方案:1、字体变型 (一般通过算法,进行扭曲,比较有代表性就是:http://code.google.com/p/cool-php-captcha/ 2、字体黏贴 (这里面以qq验证码为代表了,目前网上还是很难找到,破解qq验证码的) 3、干扰线,噪点 (这种识别起来相当容易,很容易被程序自动化识别)对于上面提到,第1,2 二种方法,在识别时候,是比较困难的。个人比较喜欢第二种方法,感觉看起来不是很费力。而扭曲的文字,总觉得怪怪的。 哈哈,纯粹个人喜 阅读全文
posted @ 2010-12-06 19:44 程默 阅读(7294) 评论(2) 推荐(1) 编辑

摘要:前些时候工作时候,需要用到进制转换,这个问题在刚刚接触计算机理论时候,还是很会的,好久不用,居然模糊了…… 十进制转换为二进制、八进制、十六进制 测试:var_dump(decto_bin(array(128,253),2));var_dump(decto_bin(array(128,253),8));var_dump(decto_bin(array(128,253),16)); X-Power... 阅读全文
posted @ 2010-10-21 09:47 程默 阅读(26444) 评论(0) 推荐(0) 编辑

摘要:做电子商务网站,少不了接入支付。做开发同学知道,支付需要调试很多项,比较耗费时间,又有些挑战性的就是它的支付签名验证了。 首先,我们看一下接口数字签名是怎么回事。 一、接口数字签名甲方是:服务提供商,开方一个接口。getuserinfo.php ,接收:coid(乙方的标示) username(用户名) 调用接口,返回用户信息,这里只以二个字段说明。乙方是:服务接口调用商,通过应用程序,调用甲方g... 阅读全文
posted @ 2010-10-18 20:03 程默 阅读(5372) 评论(0) 推荐(1) 编辑

摘要:做php开发时候,想必在使用:empty,isset,is_null 这几个函数时候,遇到一些问题。甚至给自己的程序带来一些安全隐患的bug。很多时候,对于isset,empty都认为差不多。因此开发时候,就没有注意,一段作为流程判断时候,就出现bug问题了。 一、举例说明A.一个变量没有定义,我们该怎么样去判断呢?测试结果是: 结果出来了:empty,isset首先都会检查变量是否存在,然后对变... 阅读全文
posted @ 2010-10-18 12:46 程默 阅读(25379) 评论(10) 推荐(5) 编辑

摘要:在做web应用时候,通过web扩展名判断上存文件类型,这个是我们常使用的。有时候我们这样做还不完善。可能有些人上存一些文件,但是他通过修改扩展名,让在我们的文件类型之内。 单实际访问时候又不能展示(因为扩展名与文件内容不符)。下面这个php类,可能能够给我们带来帮助。 一、php检测类 首先说明下,上面文件头与文件类型映射关系来自网上,如果你有新的文件需要检查,只需要将映射加入即可。 如果你需要... 阅读全文
posted @ 2010-10-17 17:37 程默 阅读(9321) 评论(2) 推荐(1) 编辑

摘要:park,unpark,ord这3个函数,在我们工作中,用到它们的估计不多。 我在最近一个工作中,因为通讯需要用到二进制流,然后接口用php接收。当时在处理时候,查阅不少资料。因为它们使用确实比较少,也很少朋友工作中会用到它们。 在工作中,我也逐渐了解到park,unpark,ord对于二进制字节处理的强大。 下面我逐一介绍它们。 park,unpark,ord函数使用介绍 park函数说明:本函... 阅读全文
posted @ 2010-10-15 16:46 程默 阅读(7606) 评论(0) 推荐(0) 编辑

摘要:1-7, 'all' or Enter to continue:知道上面 2个区别,对于我们安装很方便理解了。我们一般so文件扩展,需要运行:pecl已经安装成功。 阅读全文
posted @ 2010-06-28 19:34 程默 阅读(26215) 评论(0) 推荐(0) 编辑