类别《简单的php&mysql》下的文章:
【php】strstr、stristr、strpos这三个函数的区别
strstr -- 返回字符串中从某指定字符开始到结束处的字符串。
语法:
string strstr ( string haystack, string needle)
返回haystack中从needle开始到结束的字符串.
如果没有返回值,即没有发现needle,则返回FALSE
注: 这个函数是大小写敏感的。
stristr与strstr 的区别就是stristr不分区大小写。
相对于前两者查找成功后返回的是字符,strpos查找成功后则是返回的是位置。因为位置有可能是0,所以判断查找失败使用===false更合适。
strpos的性能比较好,如果只是判断needle是否在字符串haystack中,则使用strpos较好,它将占用更少的内存和获得更快的执行速度。但是strpos对特殊字符支持不好,比如对中文就不能很好支持。
PHP一些有用的技巧
mysql的一些有用的查询
nginx文件类型错误解析漏洞
原文及漏洞发现者:http://www.80sec.com/nginx-securit.html
漏洞介绍:nginx是一款高性能的web服务器,使用非常广泛,其不仅经常被用作反向代理,也可以非常好的支持PHP的运行。80sec发现其中存在一个较为严重的安全问题,默认情况下可能导致服务器错误的将任何类型的文件以PHP的方式进行解析,这将导致严重的安全问题,使得恶意的攻击者可能攻陷支持php的nginx服务器。
nginx真的存在文件类型解析漏洞吗?
三篇安全类文章
字符集导致的浏览器跨站脚本攻击
这种利用类型的攻击早在06年就被安全研究人员指出,不过一直没有在国内重视。而由于我们国内大部分站点正是这种有漏洞的字符集,所以影响还是比较大。文章最后的评论指出utf8同样危险。
http://www.80sec.com/charset-xss.html
Html富文本过滤
程序背景:80sec注意到很多web应用程序在一些场合需要允许一些Html标签,和一些标签里的一些属性,如一些日志发表的地方,书写文章的地方,但是由于程序员对安全的不太了解,或者在自己进行的安全过滤时考虑不周,都容易带来跨站脚本攻击,在一些web2.0站点甚至引发Xss Worm。常规的一些检测措施包括黑名单,白名单等等,但是都因为过滤得并不全面,很容易被绕过。其实有另外一种过滤相对严格的方法,就是基于Html语法分析的filter,在满足应用的同时可以最大限度保证程序的安全,一些过滤比较严谨的如Yahoo Mail,Gmail等等就是基于该原理进行的过滤。SafeHtml就是其中一款使用Php的开源过滤器。官方站点在:http://pixel-apes.com/safehtml 。
http://www.80sec.com/richtext-xssfilter.html
phpinfo跨站脚本漏洞
phpinfo页面对输入的参数都做了详细的过滤,但是没有对输出的进行charset的指定,而在一些浏览器里如IE7里,你可以让它自动选择编码或者通过一个iframe页面给它指定编码,这样就可以饶过phpinfo的过滤而产生一个跨站脚本漏洞。
http://www.80sec.com/phpinfo-xss.html
xss简单渗透测试
L卡片:emlog的rss订阅全文输出的修改方法
修改博客根目录下的rss.php文件,找到函数GetBlog:
function GetBlog($sort = null)
{
global $DB,$URL;
$subsql = $sort ? "and sortid=$sort" : '';
$sql = "SELECT * FROM ".DB_PREFIX."blog WHERE hide='n' and type='blog' $subsql ORDER BY gid DESC limit 0,10";
$result = $DB->query($sql);
$blog = array();
while ($re = $DB->fetch_array($result))
{
$re['id'] = $re['gid'];
$re['title'] = htmlspecialchars($re['title']);
$re['date'] = $re['date'];
$re['content'] = $re['content'];
/*---------rss显示摘要--------
if(!empty($re['password']))
{
$re['excerpt'] = '<p>[该日志已设置加密]</p>';
}else{
if(!empty($re['excerpt']))
{
$re['excerpt'] .= '<p><a href="http://'.$URL.'/?post='.$re['id'].' ">阅读全文>></a></p>';
}
}
$re['content'] = empty($re['excerpt']) ? $re['content'] : $re['excerpt'];
*/
//rss显示全文
if(!empty($re['password'])){
$re['excerpt'] = '<p>[该日志已设置加密]</p>';
$re['content'] = $re['excerpt'];
}
//rss显示全文 end
$blog[] = $re;
}
return $blog;
}
如上面代码所示,将灰色部分注释掉,添加绿色部分代码即可。
L卡片:使用Apache的htaccess防止图片盗链
如果不喜欢别人在他们的网页上盗链自己的图片、文档的话,可以通过".htaccess"的命令来做到。通过.htaccess来防止网站的图片、压缩文件、或视频等非Html文件被盗链的方法相当简单,通过在该文件中加入几句命令即可保护我们宝贵的带宽。下面提供两种方法解决盗链:

