新手用织梦(dedecms)建站如何做好安全措施
登录网站后台
2选择系统
3系统用户管理
4选择更改
5填入需要更改的密码点击保存即可
点击织梦后台左侧菜单栏"系统"菜单
在"系统设置"中找到"系统用户管理"点击进入
找到需要修改的管理员帐号,点击对应帐号"管理项"下面的"更改"按钮
在"更改帐号"界面,输入新的登录密码,复制粘贴安全验证串代码到输入框中,点击"保存用户"完成登录密码更改。
提示密码修改成功,重新登录后台需要输入新的密码。
1、data、templets、uploads、a这几个文件设置为可读不可执行权限。a文件保存的是默认的html文件看,可以在后台修改。
2、include、member、plus、dede设置为可读可执行不可写入权限。dede文件夹修改别的名字,这是后台默认登录地址后缀名,用过的织梦的都知道,所以改了吧。
3、如果你的网站没有没有会员登录,专题。可以删掉member、special这两个目录。
4、安装完织梦程序之后,删掉安装的文件install。
5、织梦后台登陆默认登录账号密码都是admin,不要以为把dede文件夹名称改了就以为防患于未然了,一定要做到位。
6、Mysql数据库链接,不使用root用户,单独建立新用户,并给予:SELECT、INSERT、UPDATE、DELETE、CREATE、DROP、INDEX、ALTER、CREATE TEMPORARY TABLES权限。
7、定期进行备份网站目录和数据库,并在后台进行文件校验、病毒扫描、系统错误修复。万一哪天我们的站被黑了,清空了,还能再上传到服务器,完好无损。
8、plus目录删除 ,可以安装一些安全插件。如果是做企业网站用不到会员登录,专题。可以删掉member、special这两个目录。
建议最好还是经常性备份网站,这样才是最安全的。
如果织梦后台被锁定,解除的方法如下:
1、找回管理员账户密码:如果只是忘记了管理员账户密码,可以通过织梦官网提供的找回密码服务来找回密码,通过找回密码后再登录织梦后台,修改密码即可。
2、检查IP地址是否被封禁:如果登录多次失败的情况下,流量被识别为后台攻击,管理员账户所在的IP地址可能会被自动封锁。此时需要通过其他的网络环境登录,或者联系网站空间提供商解封IP地址。
3、修改数据库中管理员账户密码:如果以上解决方法均无法解决问题,则可以通过修改数据库中管理员账户密码的方式进行解决。具体方法可以通过网上官方技术支持或者织梦官方论坛搜索获得。需要注意的是,在解决织梦后台被锁定问题时,一定要遵守织梦的相关规定和技术要求,以免出现意外情况或者造成更大的损失。
其实Base64的加密和解密的算法不是很复杂,首先是定义自己64位的密钥,64个字符是固定,但是顺序是可以随自己的设计而变化。例如:
char[] BaseTable=new char[64]{
'A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z',
'a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z',
'0','1','2','3','4','5','6','7','8','9','+','/'};
接下来,在加密的时候就是对于需要加密的每个字符,通过一定的算法,转换成上面64字符的一种;而在解密的时候则是把64字符中任意一个字符反算出加密前的字符。对于每个字符的操作有很多方法,这里就不一一介绍了。需要注意的是“=”字符,在Base64加密算法中,是很重要的,它是起到补零作用。
以下是完整代码:
//----------------------------- Base64 class --------------------------------------
//---------------------------------------------------------------------------------
//---File:clsBase64
//---Description:The class file to encode string or decode string in base algorith
//---Author:Knight
//---Date:Oct8, 2005
//---------------------------------------------------------------------------------
//----------------------------{ Base64 class }-------------------------------------
using System;
namespace Base64
{
/// <summary>
/// Summary description for clsBase64
/// </summary>
public class clsBase64
{
private char[] source;
private char[] lookupTable;
private int length, length2, length3;
private int blockCount;
private int paddingCount;
public clsBase64()
{
//
// TODO: Add constructor logic here
//
source = null;
length = length2 = length3 =0;
blockCount = 0;
paddingCount = 0;
}
/// <summary>
/// Create base64 char array using default base64 char array
/// </summary>
/// <param name="CreatePara"></param>
/// <returns>return the new base64 char array</returns>
private char[] CreateBase64Char( ref char[] CreatePara )
{
char[] BaseTable=new char[64]{
'A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z',
'a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z',
'0','1','2','3','4','5','6','7','8','9','+','/'};
const int CREATE_TYPE = 8;
byte bParaValue = 0;
byte bTemp;
for( int i = 0; i < CreateParaLength; i++ )
{
bTemp = ( byte )( CreatePara[i] );
switch( bTemp % CREATE_TYPE )
{
case 1:
// 00000001
bTemp =( byte )( bTemp ^ 0x01 );
break;
case 2:
// 00000010
bTemp =( byte )( bTemp ^ 0x02 );
break;
case 3:
// 00000100
bTemp =( byte )( bTemp ^ 0x04 );
break;
case 4:
// 00001000
bTemp =( byte )( bTemp ^ 0x08 );
break;
case 5:
// 00010000
bTemp =( byte )( bTemp ^ 0x10 );
break;
case 6:
// 00100000
bTemp =( byte )( bTemp ^ 0x20 );
break;
case 7:
// 01000000
bTemp =( byte )( bTemp ^ 0x40 );
break;
default:
// 10000000
bTemp =( byte )( bTemp ^ 0x80 );
break;
}
bParaValue =( byte )( bParaValue ^ bTemp );
}
char chrTemp;
int nIndex;
switch( bParaValue % CREATE_TYPE )
{
case 1:
// Exechange 0 <--> 1, 2 <--> 3, 4 <--> 5, 6 <--> 7
for( int i = 0; i < BaseTableLength / CREATE_TYPE; i++ )
{
回答不容易,希望能帮到您,满意请帮忙采纳一下,谢谢 !
0条评论