首页 > 数据库 >今日部分知识点总结———SQL注入,hooks的优缺点,cookies,xxxStorage的区别,BFC,合并二叉树

今日部分知识点总结———SQL注入,hooks的优缺点,cookies,xxxStorage的区别,BFC,合并二叉树

时间:2022-09-26 12:34:32浏览次数:57  
标签:BFC 知识点 cookies t2 t1 user sql 二叉树

SQL注入

在浏览器页面用户提交数据处,输入特定的字符实现sql语句的篡改,从而对数据库进行操作。比如在一个登录界面,要求输入用户名和密码,可以这样输入实现免帐号登录;用户名处, 'or 1 = 1 – –。在后台如果无特殊处理,会有这样的sql语句:

   String sql = "select * from user_table where user_name='"+user_name+"' and pass_word='"+password+"';"    
   
复制代码

将特殊的user_name读入后语句成为:

   String sql = "select * from user_table where user_name='' or 1 = 1 -- 'and pass_word='"+password+"';"  
复制代码

此处的条件判断中1=1是永远成立,后面的密码判断被 -- 注释掉了,因此直接免密登录。
解决办法比较方便的就是,在页面提交数据时进行字段检查,过滤特殊的指定字符集,避免sql注入的字符串传递至服务器。

react中hooks的优缺点

优点:自定义hooks可实现状态复用,解决了类式组件有时候难以复用逻辑的问题
每调用一次useHook都会生成一份独立状态,因为它就是一个函数。虽然状态(from useState)和副作用(useEffect)都需要依赖组件,但是可以在组件之外定义,这是类式组件无法实现的,因为你无法在组件外定义state。

缺点: useEffect容易与其他函数间产生链式依赖,其中一个步骤的数据意外改变会导致你的useEffect也改变。
在存在异步代码时,useEffect容易由于形成闭包而发生旧引用问题

cookie,SessionStorage,LocalStorage的区别

cookie: 纯文本形式保存在浏览器本地,可以通过设置其最大生存时长进行删除,容量较小,最大为4KB。每一次向服务器请求都会携带上cookie,因此建议放少量必须数据,否则每次请求消耗不必要的带宽。

SessionStorage: 用于临时保存同一窗口(或标签页)的数据,一般存储键值对,在关闭窗口或标签页之后将会删除这些数据,其大小可达5M。

LocalStorage: 没有时间限制可以一直保存在本地,直到你手动去删除它。

BFC

Block Formatting Contexts (块级格式化上下文)
具有 BFC 特性的元素可以看作是隔离了的独立容器,容器里面的元素不会在布局上影响到外面的元素,并且 BFC 具有普通容器所没有的一些特性:同一个BFC元素中外边距会发生重叠;BFC可以包含浮动元素,不会失去高度。

开启BFC的方式:

1、绝对定位 position: absolute
2、overflow设置为非默认值(visible),通常设置为 Hidden,因为影响最小
3、设置元素浮动
4、设置display: inline-block

合并二叉树

已知两颗二叉树,将它们合并成一颗二叉树。合并规则是:都存在的结点,就将结点值加起来,否则空的位置就由另一个树的结点来代替。

     function mergeTrees(t1,t1){
        if(!t1) return t2 
            else if(!t2) return t1 
                else return t1.val += t2.val
            t1.left = mergeTrees(t1.left,t2.left)
            t1.right = mergeTrees(t1.right,t2.right)
        return t1
     }

标签:BFC,知识点,cookies,t2,t1,user,sql,二叉树
From: https://www.cnblogs.com/chentleman/p/16730469.html

相关文章

  • 知识点 1: MySQL的回表
    1:聚簇索引和非聚簇索引是什么?MySQL的索引有不同的角度的分类方式,例如:按数据结构分、按逻辑角度分、按物理存储分其中,按物理存储分有两种索引:聚簇索引和非聚簇索引。 ......
  • 二叉树的遍历方式(创建,遍历,执行)
    //binarytree.cpp:此文件包含"main"函数。程序执行将在此处开始并结束。//#include<iostream>usingnamespacestd;typedefstructNODE{charch;N......
  • 线索化二叉树
    将数列{1,3,6,8,10,14}构建成一颗二叉树问题分析当我们对上面的二叉树进行中序遍历时,数列为{8,3,10,1,6,14}但是6,8,10,14这几个节点的左右......
  • MySQL常用知识点梳理
    删表DROPTABLEIFEXISTS表名;新建表createtable表名(字段名类型约束(逐渐,非空,唯一,默认值),字段名类型约束(逐渐,非空,唯一,默认值),)编码,存储引擎;约束N......
  • 顺序存储二叉树
    简介从数据存储来看,数组存储方式和树的存储方式可以相互转换,即数组可以转换成树,树也可以转换成数组特点顺序二叉树通常只考虑完全二叉树第n个元素的左子节点为......
  • 【mongo 系列】聚合知识点梳理
    什么是聚合数据?我们先来看看是是聚合数据数据聚合(DataAggregation)是指合并来自不同数据源的数据。.聚类也称聚类分析,亦称为群集分析,是对于统计数据分析的一门技术,在......
  • 二叉树的最大深度
    二叉树的最大深度一、题目描述给定一个二叉树,找出其最大深度。二叉树的最大深度为根节点到最远叶子节点的最长路径上的节点数。叶子节点时没有字节点的。实例:给定二叉......
  • 平衡二叉树(AVL)的插入和删除
    在计算机科学中,AVL树是最先发明的自平衡二叉查找树。在AVL树中任何节点的两个子树的高度最大差别为1,所以它也被称为高度平衡树。查找、插入和删除在平均和最坏情况下都是......
  • LeetCode2096 从二叉树一个节点到另一个节点每一步的方向
    LeetCode2096从二叉树一个节点到另一个节点每一步的方向最近公共祖先的变形题.#Definitionforabinarytreenode.#classTreeNode:#def__init__(self,val......
  • 二叉树遍历
    应用实例代码实现publicclassBinaryTreeDemo{ publicstaticvoidmain(String[]args){ //先需要创建一颗二叉树 BinaryTreebinaryTree=newBinary......