zoukankan      html  css  js  c++  java
  • 安全防御之防xss、SQL注入、与CSRF攻击

    XSS攻击

    • 个人理解,项目中最普通的就是通过输入框表单,提交js代码,进行攻击
      例如在输入框中提交 <script>alert("我是xss攻击");</script>,如果没有防
      御措施的话,就会在表单提交之后,弹出弹窗
    • 防御措施,目前我主要是用一个过滤器,将特殊字符进行转义
    • 代码部分

    SQL注入攻击

    • 个人理解,通过提交sql代码,进行攻击,轻则不需要用户名密码可登录系统,
      重则拿到你数据库核心数据
    • 防御措施,项目使用的不同数据库连接框架有不同的方法防御,如果是javaweb
      正常使用PreparedStatement预编译,可进行防御
      mybatis则优先使用 #{}。因为 ${} 会导致 sql 注入的问题
      参考连接https://www.2cto.com/database/201709/676537.html
    • 代码部分(这里使用javaweb的时候代码)
    • public boolean login(String username,String password) throws ClassNotFoundException, SQLException{
              /**
               * 1.得到Connection
               * 2.得到Statement
               * 3.得到ResultSet
               * 4.rs.next()返回的是什么,我们就返回什么
               * 
               */
              //准备四大参数
              String DriverClassName = "com.mysql.jdbc.Driver";
              String url = "jdbc:mysql://localhost:3306/mydb3";
              String user = "root";
              String pwd = "root";
              Class.forName(DriverClassName);
              Connection conn = DriverManager.getConnection(url, user, pwd);
              /**
               * 二、得到Statement
               */
              Statement stmt = conn.createStatement();
              String sql ="select * from t_user where username='"+username+"' and password ='"+password+"'";
              //System.out.println(sql);
              ResultSet rs = stmt.executeQuery(sql);
              
              return rs.next();
          }
    • @Test
          public void fun1() throws ClassNotFoundException, SQLException{
              String username="a' or 'a'='a";
              String password="a' or 'a'='a";
              boolean bool=login(username,password);
              System.out.println(bool);
          }

      这里的sql语句是

    • select * from t_user where username='a' or 'a'='a' and password ='a' or 'a'='a'

      这就是sql注入攻击的演示

    CSRF攻击

  • 相关阅读:
    Memcached:高性能的分布式内存缓存服务器
    MySQL数据库Query的优化
    MySQL数据库的锁定机制及优化
    系统架构及实现对性能的影响(一)
    Mysql数据库的基本结构和存储引擎简介
    Spring事务管理的回滚
    穷举算法实例
    在写完全二叉树的构建及遍历
    Inotify
    Rsync扩展
  • 原文地址:https://www.cnblogs.com/StudyZhh/p/10169553.html
Copyright © 2011-2022 走看看