常见web server攻击

安全

-- 关注web server层面, 没办法防止硬件方面的攻击(如DDOS)

  1. SQL注入: 窃取数据库的数据

    1. 攻击方法: 输入一个sql片段, 最终拼接成一段攻击代码

    2. 预防措施: mysql的escape函数处理输入内容

    3. 代码演示:

          // 原本node的sql拼接语句
          `select * from users where username='zhangsan' and password='123'`
          // 当登录时候, 输入: zhangsan'--  时
          `select * from users where username='zhangsan'--' and password='123'`
          // 后面的部分就被注释掉, 然后不需要密码也能登录
          // escape处理之后, 把' 转义成 \', 所以注意escape的之后, sql语句不需要加''
          `select * from users where username='zhangsan\'--' and password='123'`
      
    4. 解决: username = mysql.escape(username), 会把特殊符号处理

  2. XSS攻击: 获取前端的cookie内容

    1. 攻击方式: 在页面展示内容中掺杂js代码, 以获取网页信息

    2. 预防方式: 转换生成js的特殊字符

    3. 代码演示: 在输入框内输入<script>alert(document.cookie)</script>

    4. 解决: npm i xss --save

          const xss = require('xss');
          // 原本title直接存, 现在把特殊字符进行转义, "<" ">"都转义, 形成不了js语句
          title = xss(title)
      
    转换js.png
  1. 密码加密(明文密码不安全)

    1. 即便攻破数据库, 也不能泄露用户账号密码
    2. 攻击方式: 获取了此网页的账号密码, 再用此账号密码去登录其他系统
    3. 解决: nodejs提供加密的库, crpyto
        // 对密码进行md5加密
        // node自带的
        const crpyto = require('crypto');
    
        //密钥, 随便的文字
        const SECRET_KEY = 'Wangbin_666';
    
        //md5加密
        const md5 = (content) => {
        let md5 = crpyto.createHash('md5');
        // 生成十六进制
        return md5.update(content).digest('hex');
        }
    
        // 加密函数
        const getPassword = (password) => {
        const str = `password=${password}&key=${SECRET_KEY}`
        return md5(str);
        }
        module.exports = {
            getPassword
        }
        // 之后的密码: getPassword(密码)
    
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Web安全简史 在Web1.0时代,人们更多是关注服务器端动态脚本语言的安全问题,比如将一个可执行脚本(俗称Web...
    潘良虎阅读 9,353评论 3 72
  • 注入攻击的分类 1.没有正确过滤转义字符 在用户的输入没有为转义字符过滤时,就会发生这种形式的注入式攻击,它会被传...
    查无此人asdasd阅读 5,706评论 0 5
  • 常见web攻击:https://www.cnblogs.com/morethink/p/8734103.html搞...
    SkTj阅读 5,090评论 0 41
  • 搞Web开发离不开安全这个话题,确保网站或者网页应用的安全性,是每个开发人员都应该了解的事。本篇主要简单介绍在We...
    timothyue1阅读 3,321评论 0 0
  • 周末, 很多人都会选择逛街, 在熙熙攘攘的人群中度过, 而我, 对大自然由衷地喜欢, 不论春夏秋冬, 都能够找到它...
    屹耳yier阅读 1,301评论 0 2

友情链接更多精彩内容