node中后台安全的防护

                                                                       node中后台安全的防护

   在进行server端开发的过程中,有一个与前端管理很大的不同的地方就是在于要做好安全的防护。来防卫恶意的攻击,以此来保护数据的安全。因此首先来介绍一些常见的攻击后台的方式:

在做服务器时,一定要注意安全问题。常见的安全问题有
sql注入: 窃取数据库中的内容
xss攻击: 窃取前端的cookie内容
对于server端的攻击方式非常多,预防的手段也非常的多,在这里使用的是node层面上的预防
有的攻击还需要硬件和服务来支持(需要OP支持),如 DDOS

针对于上面的这些问题,我们目前只需要做的就是在node层面上即现在的server端处理上来完成所需要做的防护,即防sql注入与xss攻击。对于sql注入与xss攻击具体形式与预防措施如下:

sql注入:
攻击方式: 输入一个sql片段,最终拼接成一段攻击代码
预防措施:使用mysql中的escape函数处理输入内容即可
例如: 在输入用户名时,使用' -- 又或者是加上; delete from user -- 加上这种sql片段注入的方式使用的方式是在mysql.js的文件中,导出escape: mysql.escape然后在controller的文件夹中涉及变量名的地方都加上escape,例如:
username = escape(username)  然后再去掉单引号即可

xss攻击:
攻击方式:在页面展示内容中参杂js代码,以获取网页信息
预防措施:转换生成js的特殊字符
在node中的处理方式  安装xssAPI来预防xss攻击  npm install xss --save
代码部分   首先使用 const xss = requie('xss');
然后调用即可: const title = xss(blogData.title);
                         const content = xss(blogData.content);
常见的攻击手段: <script>alert(document.cookie)</script>

上面所介绍的就是关于对于sql注入以及xss攻击的具体攻击形式与在node中如何去防护,在node中封装了一个API一个是escape函数来处理sql注入,其原理就是针对于不同的sql语句对其进行转义然后再去解释运行,最后达到防止sql注入的目的。另外一个预防xss攻击的方式就是使用第三方插件即xss,然后将数据先放入xss()中,然后再去使用,达到预防xss攻击的目的。

还需要做的一个防护就是进行加密处理,不得不去面临的一个问题就是当我们遇到数据库中的用户信息等被攻破后,不能直接将数据暴露出来,因此需要我们去做的就是使用加密手段,对有关于用户的信息进行加密具体的方式如下:

密码加密:
当数据库被攻破时,最不应该泄露的就是用户信息
攻击的方式:获取用户名和密码,再去尝试登录其他系统
预防措施:将密码加密,即使拿到密码也不知道明文
具体的实现方法:

const crypto = require('crypto');

//密匙  用于加密密码  不能暴露否则很容易就会被黑客攻破信息
const SECRET_KEY = 'WJhou1@@_59454#';

//md5加密
const md5 = (content) => {
    let md5 = crypto.createHash('md5');
    return md5.update(content).digest('hex');
}


//加密函数
const genPassword = password => {
    const str = `password=${password}&key=${SECRET_KEY}`;
    return md5(str);
}

module.exports = {
    genPassword
}
最后将数据库中的信息更加为密匙即可。说到这里在server端的处理方式大致就如上所述。

猜你喜欢

转载自blog.csdn.net/care_yourself/article/details/101192717