全站加密的问题
一直以来,都想解决壮壮站点的全站加密,注意是全站加密,而不是用wp自带的单独加密。可是这么一个小小的问题,在我不会写代码的情况下,自然也变得麻烦起来。
后来找到了通过nginx的加密方式,在进站的时候要输入用户名和密码,这一定程度上解决了这个问题。但是存在两个遗憾:1)要输入用户名和密码,界面太丑。2)七牛无法回源读取文件。
step 1
修改WordPress主题,添加加密功能
用文本编辑器打开你的主题目录下的header.php,在第一行添加以下代码:
<?php
if (!isset($_SESSION)) {
session_start();
}
if( isset($_SESSION['authenticated']) )
{
if($_SESSION['authenticated'] == 'yes')
{
$authenticated = 'yes';
}
else
{
$authenticated = 'no';
}
}
else
{
$authenticated = 'no';
}
if($authenticated != 'yes')
{
// 将 www.ludou.org 改成你的网站首页地址
header("Location: https://www.ludou.org/login.php");
exit();
}
?>
step2
接着下载 login.php ,下载后用文本编辑器打开 login.php ,根据提示更改网站URL和密码,最后用UTF8编码保存并上传到你的网站根目录下。好了,现在你的博客就已经被加密了,初次访问必须输入密码。
login-php (点击下载)
此外,还有其他两种方法也可以解决,根据需要选择。具体看这里:
https://www.ludou.org/password-protecting-your-wordpress-blog.html
补充一个小问题:上述存在一个小不足,就是登陆后不会返回原始URL,而是会定位到主页。我加了一下两句代码:
1.在主题编辑器中加入以下一行:
$_SESSION["c_uri"]=$_SERVER["REQUEST_URI"];
2.在login.php中修改一下:
$url = "https://imgki.com".$_SESSION["c_uri"];
上面的其实很简单,就是在登录的时候通过记录REQUEST_URI的值到session中,在输入正确密码的返回地址时在加上这个$_SESSION["c_uri"]
2017.9.8补充一下:后来陆续还遇到了几个问题,也修正了几个地方。
1.期间出现了一个错误,让人很抓狂,其实就是一个细心的问题,导致在input的数据不能提交到到$_POST变量,出现了一个死循环。写代码这个东西真是能锻炼人的耐心和细心。
2.对登录界面进行了在美化,原来等登录界面实在太丑啦,成果看下图。
后期的工作:据说这个还有可能出现XSS攻击?不知道需不需要在捯饬一下。