admin

使用 url.parse() 函数转换'https://www.yuque.com!.evil.com' 'https://www.yuque.com%0a.evil.com' 会变成:'https://www.yuque.com/!.evil.com' 'https://www.yuque.com/%0a.evil.com' 可以看到 legacy API 并不认为 ! 字符属于域名的一部分,所以原始的 www.yuque.com!.evil.com 域名其实是非法的,而为了不抛异常,legacy API 尝试对它进行了一次转换,把它当成 www.yuque.com/!.evil.com 来

2022-11-07 JavaScript Node.js 前端 29
admin

1.pm=static静态。始终保持一个固定数量的子进程,这个数由(pm.max_childrem)定义,这种方式很不灵活,通常不是默认的2.pm=dynamic动态。子进程的数量在下面配置的基础上动态设置:pm.max_children、pm.start_servers、pm.min_spare_servers、pm.max_spare_servers。启动时,会创建固定数量的子进程(由pm.start_servers控制)可以理解成最小子进程树,而最大子进程数由pm.max_childrem参数控制,这样的话子进程数在会在最大和最小区间变化。闲置的子进程由另外2个配置控制,分别是pm.mi

2022-11-05 PHP 24
admin

例子:select SUBSTRING_INDEX(thumbnail,'/',-1) as file_name, thumbnail, SUBSTRING_INDEX(thumbnail,'.',-1) as suffix, from tb_article where thumbnail != ''; 介绍:这里用到 MySQL 的 SUBSTRING_INDEX(str,delim,count) 函数,LENGTH(str) 函数,REPLACE(str,from_str,to_str) 函数,和数据库的一张辅助表help_topic(这张表在默认的mysql库里)。SUBST

2022-11-05 MySQL 41
admin

因为各种现代话框架的流行,SQL 注入的威胁相对已经减少很多。但是在看不见的角落,还是存在SQL注入的威胁。SQL 预处理可以解决绝大部分 SQL 注入问题,但是有些地方不能预处理,或者需要变通的方式处理这些问题。比如表名/列名/排序动态传入的场景,这些地方不能预编译,因此很多人还是直接拼接的,而没有有效过滤。还有 LIKE语句/IN语句中,因为这两个地方的预编译写法都有些特殊,比如 WHERE IN 常常使用 FIND_IN_SET 函数代替。

2022-11-03 MySQL 20
admin

### 1,sql_mode 模式介绍如果设置的是宽松模式,那么我们在插入数据的时候,即便是给了一个错误的数据,也可能会被接受,并且不报错。严格模式的话,就会报错。例子1:表中一个字段类型是char(10),如果插入该字段的数据的长度超过了10,例如'1234567890abc',那么并不会报错,实际上存入该字段的数据时'1234567890'。例子2:表中一个字段类型时 INT,如果插入数据不是整型数据,而是一个字符串,比如:'120abc',实际存入数据是‘120’。如果插入数据是‘abc’、‘abc120’或者‘’,实际存入数据是‘0’。实际存入数据是字符串强制转换成integer 后的

2022-10-11 MySQL 429
admin

什么接口幂等性幂等性原本是数学中的含义,表达式的是N次变换与1次变换的结果相同。RESTFul API 中的幂等性是指调用某个方法1次或N次对资源产生的影响结果都是相同的。比如,RESTFul API 中的 GET 方法是查询资源,不会对资源产生影响,所以它是符合幂等性的;再比如,RESTful API 中的 DELETE 方法是查询数据,每次都应该返回 status=204。接口符合幂等性有什么用处接口的幂等性确保了无论调用1次还是N次对资源的影响都是相同的,这在某些场合下是非常有用的。举例:一个订单,多次执行支付接口,只应该付一次钱。HTTP方法的幂等性与安全性RESTful 设计本质上使

2022-10-09 Node.js 后端 422
admin

下列 sql 语句,执行预处理:let sql = `SELECT * FROM ? LIMIT 1`; let res = db.execute(sql,['tb_log']); 会出错,原因是预处理后的语句会变成:SELECT * FROM 'tb_log' LIMIT 1 如果是存储过程,可以让表名等于一个变量:create PROCEDURE test(tableName varchar(20)) BEGIN set @tableName = CONCAT(tableName); set @sqlStr = CONCAT('show create table ', @table

2022-09-18 MySQL 199
admin

MySQL 使用用 insert 插入数据时,为了不重复插入,往往先查询一下数据,若不存在才进行插入操作。当数据库中存量数据较多时,或者是在批量插入操作时,很容易出现插入重复数据的问题。解决方法:在 MySQL 中,当存在主键冲突或唯一键冲突的情况下,根据插入策略不同,有以下三种避免方法:insert ignore into:若没有则插入,若存在则忽略replace into:若没有则正常插入,若存在则先删除后插入insert into ... on duplicate key update:若没有则正常插入,若存在则更新注意,使用以上方法,需要表中有一个 PRIMARY KEY 或 UNIQ

2022-09-17 MySQL 162
admin

MySQL连接池,通过将大量短连接转化为少量的长连接,从而提高整个系统的吞吐率。一般 ORM 都会对连接池进行封装,只提供简洁的接口供上层使用。在上层看来,并不知道底层是否使用了连接池(甚至连访问数据库的IP和Port都不知道),只知道调用了一个接口,执行了指定的SQL语句,并返回执行状态和执行结果。在使用 conn = pool.getConnection() 获取一个链接,然后执行事务的过程中,执行了一次 pool.execute(sql),程序就甭了,原因是 pool.execute(),会自动获取连接池中的链接,执行完 sql 以后,就会立即释放。在 conn.release() 之前

2022-09-16 MySQL Node.js 206
admin

### 一、外键、外键作用及其限制条件1.外键的定义:外键是某个表中的一列,它包含在另一个表的主键中。外键也是索引的一种,是通过一张表中的一列指向另一张表中的主键,来对两张表进行关联。一张表可以有一个外键,也可以存在多个外键,与多张表进行关联。2.外键的作用:外键的主要作用是保证数据的一致性和完整性,并且减少数据冗余。主要体现在以下两个方面:阻止执行:从表插入新行,其外键值不是主表的主键值便阻止插入。从表修改外键值,新值不是主表的主键值便阻止修改。主表删除行,其主键值在从表里存在便阻止删除(要想删除,必须先删除从表的相关行)。主表修改主键值,旧值在从表里存在便阻止修改(要想修改,必须先删除从表

2022-09-15 MySQL 251
ngtwewy
随机推荐
关于字符的一些基础知识
CentOS 如何防止 SSH 长时间不操作自动断开连接
CSS 媒体特性 prefers-color-scheme
Rollup 教程
使用 “Content Security Policy 网页安全策略” 防御 XSS 攻击
p 标签里面不能嵌套块级元素
CentOS 时间命令 timedatectl
Debian11 安装笔记2:编译安装PHP
PHP 富文本防止 XXS 攻击的方法
使用 MySQL 线程池对压力测试的影响

微信联系我

夜间模式切换
回到顶部