也想出現在這里?聯系我們

wordpress安全防護知多少?

  • 文章介紹
  • 升級版本
  • 評價&建議

最近wordpress安全問題被小編我所關注著,我們如何做才能最大程度上保護我們的wordpress程序不被黑客所攻擊?可能很多技術大牛都習以為常了,但是畢竟還是有很多菜鳥不知道的,本帖為一篇wordpress安全防護的掃盲貼吧,幫助大家盡可能的提升wordpress程序的安全性!親身經驗,請復制黨留個出處 www.breathecast.cn !
這里面小編整理了幾個方面:

wo-login文件

wordpress自身系統來說,最直接的危害就是wp-login.php這個后臺路徑已經不在是什么秘密了,最好的解決方法無非也就是如何把這個后臺路徑給屏蔽或替換一個更隱蔽的地址,這里小編就說些最簡單,小白也能夠看懂的方法:

一、首先找到wordpress根目錄下的wp-login.php文件,用代碼編寫軟件打開,編輯里面代碼,搜索wp_shake_js找到

  1. if?(?$shake_error_codes?&&?$wp_error->get_error_code()?&&?in_array(?$wp_error->get_error_code(),?$shake_error_codes?)?)??
  2. ????????add_action(?'login_head',?'wp_shake_js',?12?);??

在這段?>的下一行加入代碼

  1. <?php???????
  2. ????if($_GET["aa"]!="bb"){???????
  3. ???header('Location:?http://www.breathecast.cn');????????
  4. }?????????????
  5. ?>??

其中aa、bb替換為自己的內容,然后wordpress后臺的地址就變成了 http://www.breathecast.cn/ wp-login.php?aa=bb 結構了,這就成了您wordpress后臺的唯一路徑,其他路徑均跳轉到首頁了!當然這個代碼也可以放在主題的文件里,這樣每次wordpress更新就不需要再修改一次了,在主題文件下找到functions.php,將下面代碼加入即可得到同樣的效果!

  1. add_action('login_enqueue_scripts','login_protection');???
  2. function?login_protection(){???
  3. ????if($_GET['aa']?!=?'bb')header('Location:?http://www.breathecast.cn/');???
  4. }??

但是話說回來,我們仔細研究下wordpress的登陸文件會發現,其實wordpress的登陸是采用post的方式來提交登陸參數的,所以說,即使我們做了后臺地址的隱藏,但是通過post提交還是可以登陸到wordpress的后臺,那么這樣我們該如何做呢?

解決方法只有把wordpress轉移到子目錄下,操作方式是

a、wordpress后臺-設置-常規下 wordpress地址(url)換成http://www.breathecast.cn/aaa(aaa為我們自己設置的,是沒有人知道的)

b、在我們的網站根目錄下創建一個aaa文件夾(aaa為上面所說的名稱),然后將根目錄下的所有文件(除了index.php、robots.txt以及.htaccess外)的所有文件轉移到這個aaa文件夾下,那么我們現在的登陸后臺就變成了http://www.breathecast.cn/aaa/wp-login.php,而aaa是沒有人知道的地址。。。

wordpress搬到子目錄后還要將根目錄下index.php文件內容

  1. require('./wp-blog-header.php');??

修改為:

  1. require('./aaa/wp-blog-header.php');??

小編不得不提示下,這里的aaa是你們自己設置的子目錄的名稱,要活學活用哈!

這樣一來,后臺地址隱藏了,且無法通過post來提交登陸信息了。。。這是黑客也無從下手的節奏啊!

后臺帳號admin

為了更加的安全,建議大家或者說一定不要將admin還作為網站管理帳號登陸,這給暴力破解帶來了方便。同時,通過?author=$id也可以很簡單的爆出我們的管理帳號,例如:222.com/?author=*(*號為1-9999數字)即可輕而易舉的爆出我們的管理帳號,有了帳號再加上市面上的密碼字典,那破解也只是時間問題了,解決方法是在functions.php文件里添加一下一下代碼:

  1. add_filter(?'request',?'v7v3_author_link_request'?);??
  2. function?v7v3_author_link_request(?$query_vars?)?{??
  3. ????if?(?array_key_exists(?'author_name',?$query_vars?)?)?{??
  4. ????????global?$wpdb;??
  5. ????????$author_id=$query_vars['author_name'];??
  6. ????????if?(?$author_id?)?{??
  7. ????????????$query_vars['author']?=?$author_id;??
  8. ????????????unset(?$query_vars['author_name']?);?????
  9. ????????}??
  10. ????}??
  11. ????return?$query_vars;??
  12. }??
  13. add_filter(?'author_link',?'v7v3_author_link',?10,?2?);??
  14. function?v7v3_author_link(?$link,?$author_id)?{??
  15. ????global?$wp_rewrite;??
  16. ????$author_id?=?(int)?$author_id;??
  17. ????$link?=?$wp_rewrite->get_author_permastruct();??
  18. ????????
  19. ????if?(?emptyempty($link)?)?{??
  20. ????????$file?=?home_url(?'/'?);??
  21. ????????$link?=?$file?.?'?author='?.?$author_id;??
  22. ????}?else?{??
  23. ????????$link?=?str_replace('%author%',?$author_id,?$link);??
  24. ????????$link?=?home_url(?user_trailingslashit(?$link?)?);??
  25. ????}??
  26. ????????
  27. ????return?$link;??
  28. }??

這樣重寫后即可改變作者頁面的鏈接方式了。

wp-admin目錄

這個問題延伸出一個更為深點的問題,那就是我們如何把wp-admin目錄也保護起來呢?小編給的方法雖然有點麻煩,但是絕對很安全,那就是在wp-admin目錄下新建個.htaccess讓只有你一個IP能夠訪問,這個方法麻煩就麻煩在如果你的網是動態IP,那么就要進.htaccess修改一次IP,才可訪問,但是這方法也絕對夠安全了。.htaccess的內容為:

  1. order?deny,?allow??
  2. allow?from?888.888.888.8888?#Your?IP?Address??
  3. deny?from?all??

換為自己的IP即可,那么wp-admin目錄只有你一人可以訪問了!說到這,后臺目錄路徑的問題安全了!

wordpress頭部信息

隱藏頭部不必要出現的信息,例如wordpress版本號等等,暴力攻擊者掌握了我們的wordpress版本號后就可以根據目前已知漏洞進行攻擊了,解決的方法是在我們的主題文件夾的functions.php內添加下面信息,以方便隱藏了wordpress不必要出現的信息,也給網站優化方面帶來好處!

  1. //移除頭部多余信息??
  2. remove_action('wp_head','wp_generator');//禁止在head泄露wordpress版本號??
  3. remove_action('wp_head','rsd_link');//移除head中的rel="EditURI"??
  4. remove_action('wp_head','wlwmanifest_link');//移除head中的rel="wlwmanifest"??
  5. remove_action('wp_head',?'adjacent_posts_rel_link_wp_head',?10,?0?);//rel=pre??
  6. remove_action('wp_head',?'wp_shortlink_wp_head',?10,?0?);//rel=shortlink???
  7. remove_action('wp_head',?'rel_canonical'?);??

絕對路徑泄漏修復

wordpress系統自身來說,有4個文件會暴漏出網站所在服務器下的絕對路徑,這個信息如果被惡意利用,那后果也是很嚴重的!為了不被別人發現我們的網站絕對路徑,我們需要對以下四個文件進行操作,分別是:

  1. 1、/wp-includes/registration-functions.php??
  2. 2、/wp-includes/user.php??
  3. 3、/wp-admin/admin-functions.php??
  4. 4、/wp-admin/upgrade-functions.php??

解決方法就很簡單了,分別打開這幾個文件,然后在文件的頭部的<?php下一行添加

  1. error_reporting(0);??

即可屏蔽報錯,其實還有一個地方會報錯,那么就是我們wordpress主題的目錄文件下的index.php里面,最好也加上這個代碼!!!

當然我們如果用的是服務器,而不是虛擬主機的話,也最好到服務器下的php.ini文件里關閉php報錯,一般php.ini文件的路徑在/usr/local/php/etc下,修改php.ini文件內display_errors = off 即可屏蔽整個服務器的php報錯!

說到這,我們的wordpress應該已經十分的強悍了,至少常見問題都已經解決,山外有山,人外有人這也是沒有辦法的,最后小編建議大家如果是在用服務器VPS的情況下,盡量少開端口,一般開個80和22端口即可!端口越多,漏洞越多,安全性就受到打折!

本文為小編和v7v3站長共同研究撰寫!轉載請留明出處!

有用2
  • 2013.10.19初次和大家見面了!

已擁有3人對該主題的建議

  1. 0樓
    xiaohui:

    做了一頓沒有做成功,刪除了添加的,以后怎么進不了儀表盤了

    2014-12-06 下午 6:39 [回復]
  2. 0樓
    小V:

    ?? 其實wordpress還有個漏洞的~

    2013-10-26 下午 9:32 [回復]
  3. ?? 寫的真全面,贊一個,現在就去改~

    2013-10-20 下午 2:10 [回復]

發表評論

還能輸入240個字

Hi, 歡迎加入Wordpress技術交流群,帶你裝逼帶你飛!

我要入群
也想出現在這里?聯系我們
wordpress加速

我來推薦一個更牛逼的給你看看?

  • 猛戳我吧
夫妇野外交换HD高清版,免费A片在线观看,亚洲精品国产自在现线,中国老妇人60OLDMANTV