php技术博客
让天下没有搞不定的bug~

让wordpress博客更安全

zone阅读(487)

要用wordpress建一个博客网站易如反掌,但就有很多人往往都比较容易忽视网站的安全。而其实网站的安全是十分重要的,所以我们要想方设法令wordpress博客网站更加安全。下面是一些保证wordpress网站安全的建议。

1.备份

在一些关于网站安全的论坛、QQ群或者圈子里,很多人都说,如果想要入侵一个网站,只要有足够的时间和决心,是完全有人可以做得到的,换句话说,没有任何一个网站是百分百安全的。正因为是这样,我们需要用备份来筑起第一道防线。

有些人可以利用一定的手段将你服务器上的所有资料清除,所以一定要记得备份,建议每天进行一次,而且要将备份文件至少保存到两种不同的存储介质上,例如,可以在你的服务器上保留一份,在你本地的电脑上保存一份,当然,你还可以选择存储到移动硬盘或者光盘等介质。

此外,还建议采用自动备份与人工备份相结合,wordpress有很多插件可以实现自动备份并将备份文件发送指定的邮箱或者下载到本地。当你需要升级网站或者安装插件之前,可以手动进行备份,以防万一。

2.更换管理员用户

暴力破解是一种常用的网站入侵方法,恶意入侵者先是猜测管理员用户的帐号,一旦找到了就使用自动脚本去尝试成千上万个密码组合,直至破解为止。

如果你为了省事使用了默认的admin作为管理员帐户,请修改,幸好修改这个是非常容易的事,只要重新创建一个用户并授予管理员的身份,然后用此用户登录并把admin用户改为投稿者就好,当然,你也可以删除它,如果你使用了admin用户发表文章,删除的时候wordpress会提示你将这些文章移到另外一个用户下面。

3.隐藏wordpress版本

有一种说法就是,人家了解你网站的信息越多,就越容易入侵,正所谓知已知彼,百战百胜。所以我们有必要隐藏我们使用的wordpress版本,因为入侵者对每一个wordpress版本的安全漏洞都是了若指掌。

要隐藏wordpress版本也不是一件困难的事,首先,我们要先禁用generator元标记,可能通过在functions.php增加以下代码来实现

function hide_wp_vers()
{
return ”;
}
add_filter(‘the_generator’,’hide_wp_vers’);

此外,入侵者还可以通过另外一种方法得知你使用的wordpress版本,就是安装目录下的readme文件,使用ftp工具连接到你的网站虚拟主机删除这一个文件。

4.禁止文件夹浏览

网站文件夹的内容是我们更加应该隐藏的,因为如果其他人可以浏览你网站的文件夹,他们就可以收集到大量关于你网站的信息,包括你使用了什么主题,安装了什么插件等等,而入侵者则可以找出这些主题或者插件的安全漏洞来攻击你的网站。

如果你的网站主机是基于linux操作系统的话,那么很容易就可以使用在你服务器根目录下的.htaccess文件来禁止文件夹被别有用心的人直接浏览,增加一个或者打开现有的,并增加以下代码:

Options -Indexes

假如你的服务器使用的并不是linux系统,你则可以通过上传一个空白的index.html文件到每一个文件夹来实现对文件夹的保护

5.经常更新wordpress版本

wordpress是开源的,所以它的源代码是公开的,所有人都可以获得到它,这让有些人可以有机可乘,从代码中找出程序的安全漏洞。有时它们可以找到一些漏洞,但wordpress组织很快就修复并发布新的版本来解决新的威胁。

所以要记得将wordpress博客网站更新到最新版本,这样可以有效减少被入侵的机会。

技术分享,技术交流,小涛与您共同成长……

wordpress的tag标签几个小技巧

zone阅读(525)

  WordPress作为一个成熟的系统是个人或公司开设独立博客的首选程序,WordPress博客量现在已经超过6000万,每月独立访客量超过3亿。我们爱好SEO的人员就喜欢从它对搜索引擎是否友好的角度来看待一个系统是否成熟,今天分享一下高手们对tag标签使用的一些技巧。比如:本博客的tag标签:

一、TAG标签有什么用?

      通过给文章定制标签,文章作者可以让更多人更方便准确的找到自己的文章;而读者可以通过文章标签更快找到自己感兴趣的文章。您可以为每篇文章添加一个或多个标签,发表成功后,您可以打开文章内的标签,看到网站内所有和您使用了相同标签的文章。不仅如此,如果您文章内使用的某个标签恰巧在首页上推荐,用户打开这个标签时,就会在结果页面上看到您的文章。

二、如何合理的优化TAG标签?

1、明确标签是为了方便用而户设置的。

用户永远是你写博客的目标(个人私密博客除外,这里只从优化的角度讨论),良好的用户体验是获得排名、留住用户、促进产品成交的重要因素,从个人博客角度来说,良好的用户体验可以获得流量、获得固定的访问者、提高PV数、获得知名度等等,所以说,TAG的正确使用规则的第一条就是注重用户,高于SEO

2、最好设置为与文章内容相关的又是网站的长尾关键词。

         TAG标签正确使用的基本准则就是要和文章内容相关,TAG标签最初的动机就是将同类、同主题的文章归类到一起,如果内容不相关,就会造成标签分类混乱,从而影响TAG标签获得良好的搜索引擎排名。另外,很多人喜欢把标签写成和首页核心关键词一样,这样会造成内部链接无法同时分配,也无法更好地集中博客内部权重来竞争核心关键词的目标排名,这种弊端非常明显,所以尽量采用长尾关键词来描述。

3、一篇文章的TAG标签的设置应该控制在3个左右,不宜过多。

      数量一直是SEOer心里面的一个纠结问题,有的朋友习惯不写标签,有的喜欢写一个,有的喜欢写六七个,像羽毛就喜欢写很多个。这都看各自喜好,如果你觉得写多少对自己有用,那么就去做。当然如果从网站优化的角度来说的话,那么TAG标签的数量应该在3个左右。

技术分享,技术交流,小涛与您共同成长……

如何让 wp 更加安全

zone阅读(558)

         大多数人不会在维护wp安装上耗费过多时间。 尽管如此,wp的安全问题仍然应该放在最重要的位置上。

服务器端和.htaccess

      保护WordPress网站安全的第一步自然是寻找安全的虚拟主机托管商。 服务器安全是所有安全措施的基础。

锁定.htaccess

    .htaccess文件有很多用途,但它最主要的功能,是防止黑客入侵。你可以在.htaccess文件里指定一些有权登录你的WordPress 后台的IP地址。

在.htaccess文件里加入下面的代码可以达到这个效果:

AuthUserFile /dev/null

AuthGroupFile /dev/null

AuthName “Access Control”

AuthType Basic

order deny,allow

deny from all

#IP address to Whitelist

allow from 123.456.789.012

用你指定的IP地址代替其中的123.456.789.012。

禁用目录浏览

    一些服务器设置允许目录浏览,即你可以通过http://yoursite.com/wp-plugins/这样的链接看到自己的插件内容。 要禁用目录浏览,只需要在.htaccess文件里加上下面的代码:

Options All -Indexes

保护.htaccess

     .htaccess文件的安全保护不容忽视。 首先你可以将文件的权限改为CHMOD 644。通过FTP登录进入服务器,然后进入网站根目录(通常是public_html文件夹,除非你为WordPress另设了一个独立文件夹)。 找到.htaccess文件后右击文件,将权限设为644。第二种方法是在.htaccess文件的最下部分加上以下代码:

<Files wp-config.php>

Order Deny,Allow

Deny from All

</Files>

优化wp-config文件

    .htaccess文件之后接下来是wp-config.php文件。

移动wp-config文件

    从WordPress 2.6开始,WordPress用户可以将wp-config.php文件移到当前安装文件的上级文件夹中。 如果在当前WordPress目录下没有发现wp-config文件,WordPress会自动检查wp-config文件是否在其上层目录中。

更改WordPress表前缀

    安装时WordPress的默认表前缀是wp_。 刚刚安装完后要修改WordPress表前缀是件很容易的事,但当你的WordPress网站已经运行了一阵子时,修改表前缀就不是那么容易的事了。 WP Security Scan插件就是为了解决这个问题而出现的。 你可以用这个插件修改默认的表前缀。 这样攻击者在试图进入你的WordPress文件时就又多了一层障碍。

定义安全密钥

你可以在wp-config文件中看到下面的内容:

/**#@+

*Authentication Unique Keys.

* Change these to different unique phrases!

* You can generate these using the

{@link https://api.wordpress.org/secret-key/1.1/ WordPress.org secret-key service}

* You can change these at any point in time to invalidate all existing cookies. This will force all users to have to log in again.

* @since 2.6.0

*/

define(‘AUTH_KEY’, ‘put your unique phrase here’);

define(‘SECURE_AUTH_KEY’, ‘put your unique phrase here’);

define(‘LOGGED_IN_KEY’, ‘put your unique phrase here’);

define(‘NONCE_KEY’, ‘put your unique phrase here’);

/**#@-*/

代码中的链接给出了一套密钥规则,你可以用所给的规则来代替代码中的四行define规则。

WordPress安全插件

值得庆幸的是,WordPress拥有为数不少的安全插件。 下面只介绍一些最基础最重要的安全插件。

WP Security Scan插件

WP Security Scan插件会查看你的WordPress安装文件,看是否有安全漏洞并给出相应的意见。 该插件的查看范围包括:

1、密码

2、文件权限

3、数据库安全

4、版本号的隐藏

5、WordPress后台安全

6、从核心代码中移除WP Generator META标签

Login LockDown WordPress Security 安全插件

Login LockDown记录尝试登陆WordPress失败的所有IP地址和时间。 如果插件发现短时间内同一个IP段内多次登录失败,插件会对禁止该IP段内所有登录请求。 Login LockDown有效阻止了暴力破解密码。

Stealth Login插件

用户可以通过这款插件自定义登录、登出、注册所用的URL。

AntiVirus for WordPress插件

AntiVirus for WordPress是一款保护博客不被采集和垃圾评论入侵的有效插件。 这款插件的用途包括: 检测可能存在的平台漏洞、病毒感染、恶意链接等。AntiVirus for WordPress还可以给你发送邮件通知和白名单。安全预防措施

以下是一些简单的安全预防措施:

1、时将WordPress和插件都更新到最新版本

2、除不用的WordPress主题和插件

3、用安全程度较高的密码

4、使用“admin”为登录名

5、WordPress文件规定正确的文件许可权限

6、期备份WordPress数据库(可利用备份插件)

wp中主题判断当前页面的类型的函数

zone阅读(861)

这几天发现一个很好的开源博客,拿过来细心的研究一下发现模板中的大部分函数,写出来分享给大家,希望大家能够支持!

首先是一些判断函数:

is_home() 判断是否为首页,并且显示的不是一个静态页面

is_front_page()判断是否为首页,包括首页显示的是一个静态页面

is_search()是否为搜索页

is_404()是否为404页面

is_category()是否为分类目录归档

is_author()是否为作者归档页面

is_day()是否为按天归档页面

is_month()是否为按月归档页面

is_year()是否为按年归档页面

is_date()是否按日期归档页面,相当于包括is_day()、is_month()、is_year()

is_tag()是否为标签归档页面

is_single()是否为文章页面

is_page()是否为页面单页

is_archive()是否为归档页面,相当于包括is_category()、is_author()、is_month()、is_day()、is_year()、is_tag()

其次是一些模板中调取内容的函数:

<?php the_content(); ?> 日志内容

<?php if(have_posts()) : ?> 确认是否有日志

<?php while(have_posts()) : the_post(); ?> 如果有,则显示全部日志

<?php endwhile; ?> 结束PHP函数”while

<?php endif; ?> 结束PHP函数”if

<?php get_header(); ?> header.php文件的内容

<?php get_sidebar(); ?> sidebar.php文件的内容

<?php get_footer(); ?> footer.php文件的内容

<?php the_time(m-d-y) ?> 显示格式为”02-19-08″的日期

<?php comments_popup_link(); ?> 显示一篇日志的留言链接

<?php the_title(); ?> 显示一篇日志或页面的标题

<?php the_permalink() ?> 显示一篇日志或页面的永久链接/URL地址

<?php the_category(, ) ?> 显示一篇日志或页面的所属分类

<?php the_author(); ?> 显示一篇日志或页面的作者

<?php the_ID(); ?> 显示一篇日志或页面的ID

<?php edit_post_link(); ?> 显示一篇日志或页面的编辑链接

<?php get_links_list(); ?> 显示Blogroll中的链接

<?php comments_template(); ?> comments.php文件的内容

<?php wp_list_pages(); ?> 显示一份博客的页面列表

<?php wp_list_cats(); ?> 显示一份博客的分类列表

<?php next_post_link( %link ) ?> 下一篇日志的URL地址

<?php previous_post_link(%link) ?> 上一篇日志的URL地址

<?php get_calendar(); ?> 调用日历

<?php wp_get_archives() ?> 显示一份博客的日期存档列表

<?php posts_nav_link(); ?> 显示较新日志链接(上一页)和较旧日志链接(下一页)

<?php bloginfo(description); ?> 显示博客的描述信息

3、一些调取系统内容的函数:

 

/%postname%/ 显示博客的自定义永久链接

 

<?php the_search_query(); ?> 搜索表单的值

 

<?php _e(’Message’); ?> 打印输出信息

 

<?php wp_register(); ?> 显示注册链接

 

<?php wp_loginout(); ?> 显示登入/登出链接

 

<!–next page–> 在日志或页面中插入分页

 

<!–more–> 截断日志

 

<?php wp_meta(); ?> 显示管理员的相关控制信息

 

<?php timer_stop(1); ?> 显示载入页面的时间

 

<?php echo get_num_queries(); ?> 显示载入页面查询

4、wp Header头部 PHP代码(也就是位于<head>和</head>之间的PHP代码)

 

<?php bloginfo(’name’); ?> 网站标题

 

<?php wp_title(); ?> 日志或页面标题

 

<?php bloginfo(’stylesheet_url’); ?> WordPress主题样式表文件style.css的相对地址

 

<?php bloginfo(’pingback_url’); ?> WordPress博客的Pingback地址

 

<?php bloginfo(’template_url’); ?> WordPress主题文件的相对地址

 

<?php bloginfo(’version’); ?> 博客的Wordpress版本

 

<?php bloginfo(’atom_url’); ?> WordPress博客的Atom地址

 

<?php bloginfo(’rss2_url’); ?> WordPress博客的RSS2地址

 

<?php bloginfo(’url’); ?> WordPress博客的绝对地址

 

<?php bloginfo(’name’); ?> WordPress博客的名称

 

<?php bloginfo(’html_type’); ?> 网站的HTML版本

 

<?php bloginfo(’charset’); ?> 网站的字符编码格式

 

在wp中自动获取文章中的图片

zone阅读(563)

在调试主题的时候,有一个问题一直没解决。那就是自动显示缩略图。当然,我知道你可能想利用wordpress中的自定义字段(custom field)功能,显然,这是可行的。但并不自动,这样的话,我们总需要手动添加custom field。很是麻烦。现在好了,在10 Killer WordPress Hacks这篇文章中,我看到最有用的一个hack将能解决这个问题,自动搜索文章图片,然后,显示。

<?php if (have_posts()) : ?>

<?php while (have_posts()) : the_post(); ?>

<?php

$szPostContent = $post->post_content;

$szSearchPattern = ‘~<img [^\>]*\ />~’; // 搜索所有符合的图片

preg_match_all( $szSearchPattern, $szPostContent, $aPics );

$iNumberOfPics = count($aPics[0]); // 检查一下至少有一张图片

if ( $iNumberOfPics > 0 ) {

// 这里是你怎么处理图片的内容

for ( $i=0; $i < $iNumberOfPics ; $i++ ) {

echo $aPics[0][$i];

};

};

endwhile;

endif;

?>

但是,像你知道的,这样的话,如果一篇文章有多个图片的话,都统统会被显示出来。有时我们只需要显示一张,那这个代码就不符合我们的要求了,所以,让我们来小小地修改一下代码:

<?php

$soContent = $post->post_content;

$soImages = ‘~<img [^\>]*\ />~’;

preg_match_all( $soImages, $soContent, $thePics );

$allPics = count($thePics[0]);

switch ( $allPics > 0 ) {

case $allPics = 1:

echo $thePics[0][0]; // 显示文章中的第一张图片

break; // 当图片数量有1个时,不再执行

default:

echo “这里应该显示图片,而不是sofish”; // 这里加入没图片时显示的默认图片

};

?>

像上面说明的,我们用switch语句,而不是if…else if…else这样,来获取我们的一张图片。当检查到一张的时候,代码不再运行。这样也省去了对服务器的请求。

 

 

 

 

wp2qzone自动转发到qq空间

zone阅读(549)

今天在zone那里发现一个很实用的wordpress插件:WP2。这个插件可以很方便的把你发布的日志同步到你的QQ空间上,怎么样有点心动了?动手吧!

先说一下原理:WP2Qzone 的原理是通过 QQ 邮箱中转实现的,具体的过程是这样的:由于 Qzone 支持通过你的 QQ 邮箱发布,而 QQ 邮箱又支持 SMTP 协议,而 WordPress 所包含的 PHPMailer 类可以使用 SMTP 发邮件,所以我们可以通过使用 PHPMailer 发送邮件来实现同步 WordPress 博客日志到 Qzone。

安装使用很是智能,几步搞定!
1、打开 QQ 邮箱的 SMTP 功能。  具体步骤请看:查看详情
2、下载同步到 Qzone 插件:WP2Qzone。
3、上传到 插件目录中下并激活。
4、把插件中的 $qq_number 和 $qq_password 设置成你的 QQ 号码和密码。

搞定,这样只要你一发布日志就会自动更新到 Qzone 中。

WP2Qzone下载:百度搜索一大堆,哈哈……