仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 1011|回复: 19
打印 上一主题 下一主题

[学习教程] PHP网站制作之wordpress平安设置文章

[复制链接]
若相依 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-2-3 23:41:54 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
聪明的你,显然已经逐渐的开悟了,慢慢的理解了编程的概念,那么祝贺你,你已经迈出了成功的第一步。假如想要wordpress当作一个cms来利用,那上面的平安设置装备摆设是必需要看的了。   假如想要wordpress当作一个cms来利用,那上面的平安设置装备摆设是必需要看的了。
1、去失落wordpress版本号信息
wp-includes/general-template.php第2204行 $gen = ‘<meta name=”generator” content=”WordPress ‘ . get_bloginfo( ‘version’ ) . ‘” 去失落外面一切版本号信息
2、删除上面文件外面的版本信息
wp-admin/includes/export.php 这里是定阅页面,还要删除wp-includes/general-template.php外面的一切信息,不然一样显示
wp-admin/admin-footer.php <p id=”footer-upgrade”><?php echo $upgrade; ?></p>
3、制止会见wp-includes文件夹和wp-admin文件夹
apache的用户,可经由过程.htaccess来完成,其他用户可经由过程在该文件夹上面创立一个空白html文件,再加上rewrite划定规矩完成。
4、删除失落一切插件的附带信息,防止有心人使用插件破绽来入侵,最好也制止会见wp-content上面的plugins文件夹和themes文件夹,办法如上一步。
5、删除后台首页版本号和主题信息
wp-admin/includes/dashboard.php,删除失落上面这段代码
  echo “\n\t”.’<div>’;
  $ct = current_theme_info();
  echo “\n\t<p>”;
  if ( !empty($wp_registered_sidebars) ) {
   $sidebars_widgets = wp_get_sidebars_widgets();
   $num_widgets = 0;
   foreach ( (array) $sidebars_widgets as $k => $v ) {
    if ( ‘wp_inactive_widgets’ == $k )
     continue;
    if ( is_array($v) )
     $num_widgets = $num_widgets + count($v);
   }
   $num = number_format_i18n( $num_widgets );
   $switch_themes = $ct->title;
   if ( current_user_can( ‘switch_themes’) ) {
    echo ‘<a href=”themes.php”>’ . __(‘Change Theme’) . ‘</a>’;
    $switch_themes = ‘<a href=”themes.php”>’ . $switch_themes . ‘</a>’;
   }
   if ( current_user_can( ‘edit_theme_options’ ) ) {
    printf(_n(‘Theme <span>%1$s</span> with <span><a href=”widgets.php”>%2$s Widget</a></span>’, ‘Theme <span>%1$s</span> with <span><a href=”widgets.php”>%2$s Widgets</a></span>’, $num_widgets), $switch_themes, $num);
   } else {
    printf(_n(‘Theme <span>%1$s</span> with <span>%2$s Widget</span>’, ‘Theme <span>%1$s</span> with <span>%2$s Widgets</span>’, $num_widgets), $switch_themes, $num);
   }
  } else {
   if ( current_user_can( ‘switch_themes’ ) ) {
    echo ‘<a href=”themes.php”>’ . __(‘Change Theme’) . ‘</a>’;
    printf( __(‘Theme <span><a href=”themes.php”>%1$s</a></span>’), $ct->title );
   } else {
    printf( __(‘Theme <span>%1$s</span>’), $ct->title );
   }
  }
  echo ‘</p>’;
  update_right_now_message();
  echo “\n\t”.’<br /></div>’;
6、上岸页装上login-lockdown插件,防止暴力破解用户暗码,假如开放会员注册功效,请按上面的办法修正上岸页,不然请把根目次上面的wp-login.php更名后,丢到其他你本人晓得的文件夹外面,然后修正这个上岸文件相干地址,很复杂,普通直接用你的新地址全体交换wp-login.php这个地址差不多了。最初还要修正wp-includes/general-template.php第215行,这里是后台点加入后跳转到的地址,修正成上岸页新地址。
开放会员注册,就要避免其他用户歹意修正暗码。在找回暗码的页面,请求同时输出用户名和邮箱,如许对照保险。办法以下:
wp-login.php 第391行,多加一行。
  <p>
   <label><?php _e(‘Username’) ?><br />
   <input type=”text” name=”user_login” id=”user_login” value=”" size=”20&Prime; tabindex=”10&Prime; /></label>
  </p>
  <p>
  <label><?php _e(‘E-mail:’) ?><br />
   <input type=”text” name=”user_login” id=”user_login” value=”" size=”20&Prime; tabindex=”10&Prime; controlName=”email” dataType=”user_login” /></label>
  </p>
传递体例前面加上method=”post” onsubmit=”return validator(this);”
下面加上检测email剧本
<script language=”javascript” type=”text/javascript”>
String.prototype.isEmpty = function () {
     return !(/.?[^\s ]+/.test(this));
}
String.prototype.isBetween = function (val, min, max) {
     return isNaN(val) == false && val >= min && val <= max;
}
String.prototype.getBetweenVal = function (what) {
     var val = this.split(‘,’);
     var min = val[0];
     var max = val[1] == null ? val[0] : val[1];
     if (parseInt(min) > parseInt(max)) {
         min = max;
         max = val[0];
     }
     return what == ‘min’ ? (isNaN(min) ? null : min) : (isNaN(max) ? null : max);
}
var validator = function (formObj) {
     this.allTags = formObj.getElementsByTagName(‘*’);
     this.reg = new Object();
     this.reg.user_login = /^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/;
     this.tip = new Object();
     this.tip.user_login = ‘ Is not a valid e-mail format’;
     this.getControlName = function ()
     {
         return this.element.getAttribute(‘controlName’) == null
                ? ‘The value of the specified control’
                : this.element.getAttribute(‘controlName’);
     }
     this.setFocus = function (ele) {
         try {
             ele.focus();
         } catch (e){}
     }
     this.setBorderColor = function (ele) {
         var borderColor = ele.currentStyle ?
                           ele.currentStyle.borderColor :
                           document.defaultView.getComputedStyle(ele, null)['borderColor'];
         ele.style.borderColor = ‘#ff9900&prime;;
         ele.onkeyup = function () {
             this.style.borderColor = borderColor;
         }
     }
     //输入毛病反应信息
     this.feedback = function (type) {
         try {
             var msg = eval(‘this.tip.’ + type) == undefined ?
                       type :
                       this.getControlName() + eval(‘this.tip.’ + type);
         } catch (e) {
             msg = type;
         }
         this.setBorderColor(this.element);
         alert(msg);
         this.setFocus(this.element);
     };
     this.validate = function () {
         var v = this.element.value;
         var dataType = this.element.getAttribute(‘dataType’);
         if (!v.isEmpty() && dataType != null &&  dataType.toLowerCase() != ‘password’) {
             dataType = dataType.toLowerCase();
             try {
                 if (!(eval(‘this.reg.’ + dataType)).test(v)) {
                     this.feedback(dataType);
                     return false;
                 }
             } catch(e) {
                 this.feedback(‘unknow’);
                 return false;
             }
         }
         return true;
     };
     this.init = function () {
         for (var i=0; i<this.allTags.length; i++) {
             if (this.allTags[i].tagName.toUpperCase() == ‘INPUT’
                 this.allTags[i].tagName.toUpperCase() == ‘SELECT’
                 this.allTags[i].tagName.toUpperCase() == ‘TEXTAREA’)
             {
                 this.element = allTags[i];
                 if (!this.validate())
                     return false;
             }
         }
     };
     return this.init();
}
</script>
假如有心人阅读器禁用js剧本,那就只能经由过程修正php法式来完成了。
7、必需要尽全力回护好wp-config.php这个文件
先要先制止搜刮引擎收录wp-开首的文件和文件夹,特别要记得这一步,不然在你设置装备摆设办事器的时分,假如php情况不克不及当即设置装备摆设好,那他人会见的时分,极可能直接显示wp-config.php的代码,你的网站数据库信息被搜刮引擎收录,你说是好仍是坏呢?
其主要制止会见这个文件,可经由过程.htaccess或rewrite完成,有才能的最好更名,然后丢到一一般人不晓得的文件夹外面。
8、入手下手装置wordpress的时分,不要利用数据库默许前缀和admin用户名。
9、即时跟进更新,包含插件更新。
本文来自:站长殊效网,恪守行业品德,转载请注明出处。
终于学会把表单的数据插入数据库,然后显示出来了,应该说一个程序的雏形已经诞生了。
精灵巫婆 该用户已被删除
沙发
发表于 2015-2-4 06:04:34 | 只看该作者
本人接触php时间不长,算是phper中的小菜鸟一只吧。由于刚开始学的时候没有名师指,碰过不少疙瘩,呗很多小问题卡过很久,白白浪费不少宝贵的时间,在次分享一些子的学习的心得。
愤怒的大鸟 该用户已被删除
板凳
发表于 2015-2-5 05:51:19 | 只看该作者
学好程序语言,多些才是王道,写两个小时代码的作用绝对超过看一天书,这个我是深有体会(顺便还能练打字速度)。
不帅 该用户已被删除
地板
发表于 2015-2-11 05:40:15 | 只看该作者
Ps:以上纯属原创,如有雷同,纯属巧合
山那边是海 该用户已被删除
5#
发表于 2015-3-1 21:57:30 | 只看该作者
说点我烦的低级错误吧,曾经有次插入mysql的时间 弄了300年结果老报错,其实mysql的时间是有限制的,大概是到203X年  具体的记不清啦,囧。
柔情似水 该用户已被删除
6#
发表于 2015-3-3 22:15:27 | 只看该作者
因为blog这样的可以让你接触更多要学的知识,可以接触用到类,模板,js ,ajax
灵魂腐蚀 该用户已被删除
7#
发表于 2015-3-7 00:28:00 | 只看该作者
php里的数组为空的时候是不能拿来遍历的;(这个有点低级啊,不过我刚被这个边界问题墨迹了好长一会)
再见西城 该用户已被删除
8#
发表于 2015-3-13 23:07:26 | 只看该作者
写js我最烦的就是 ie 和 firefox下同样的代码 结果显示的结果千差万别,还是就是最好不要用遨游去调试,因为有时候遨游是禁用js的,有可能代码是争取结果被遨游折腾的认为是代码写错。
简单生活 该用户已被删除
9#
发表于 2015-3-22 17:56:48 | 只看该作者
本文当是我的笔记啦,遇到的问题随时填充
10#
发表于 2015-3-23 03:50:03 | 只看该作者
如果你可以写完像留言板这样的程序,那么你可以去一些别人的代码了,
第二个灵魂 该用户已被删除
11#
发表于 2015-4-4 13:34:04 | 只看该作者
不禁又想起那些说php是草根语言的人,为什么认得差距这么大呢。
再现理想 该用户已被删除
12#
发表于 2015-4-22 09:22:54 | 只看该作者
使用 jquery 等js框架的时候,要随时注意浏览器的更新情况,不然很容易发生框架不能使用。
飘灵儿 该用户已被删除
13#
发表于 2015-4-24 17:20:23 | 只看该作者
本人接触php时间不长,算是phper中的小菜鸟一只吧。由于刚开始学的时候没有名师指,碰过不少疙瘩,呗很多小问题卡过很久,白白浪费不少宝贵的时间,在次分享一些子的学习的心得。
变相怪杰 该用户已被删除
14#
发表于 2015-4-26 07:10:42 | 只看该作者
首先我是坚决反对新手上来就用框架的,因为对底层的东西一点都不了解,造成知识上的真空,会对以后的发展不利。我的观点上手了解下框架就好,代码还是手写。当然啦如果是位别的编程语言的高手的话,这个就另当别论啦。
因胸联盟 该用户已被删除
15#
发表于 2015-4-29 13:26:19 | 只看该作者
至于模板嘛,各位高人一直以来就是争论不休,我一只小菜鸟就不加入战团啦,咱们新手还是多学点东西的好。
乐观 该用户已被删除
16#
发表于 2015-4-29 22:51:07 | 只看该作者
找到的的资料很多都是在论坛里的,需要注册,所以我一般没到一个论坛都注册一个id,所有的id都注册成一样的,这样下次再进来的时候就不用重复注册啦。当然有些论坛的某些资料是需要的付费的。
爱飞 该用户已被删除
17#
发表于 2015-5-4 07:10:28 | 只看该作者
为了以后维护的方便最好是代码上都加上注释,“予人方便,自己方便”。此外开发文档什么的最好都弄齐全。我觉得这是程序员必备的素质。虽然会消耗点很多的时间。但是确实是非常有必要的。
谁可相欹 该用户已被删除
18#
发表于 2015-6-7 14:42:21 | 只看该作者
学好程序语言,多些才是王道,写两个小时代码的作用绝对超过看一天书,这个我是深有体会(顺便还能练打字速度)。
只想知道 该用户已被删除
19#
发表于 2015-6-8 22:03:39 | 只看该作者
,熟悉html,能用div+css,还有javascript,优先考虑linux。我在开始学习的时候,就想把这些知识一起学习,我天真的认为同时学习能够互相呼应,因为知识是相通的。
小魔女 该用户已被删除
20#
发表于 2015-6-14 14:02:40 | 只看该作者
其实也不算什么什么心得,在各位大侠算是小巫见大巫了吧,望大家不要见笑,若其中有错误的地方请各位大虾斧正。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-6-27 07:43

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表