EagleBear2002 的博客

这里必须根绝一切犹豫,这里任何怯懦都无济于事

摘要

本文提供了 Marp 模版,可基于模版使用 Markdown 制作演示文稿(PPT)。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
---
marp: true
theme: gaia
# theme: uncover
# theme: defasult
paginate: true
headingDivider: 0
math: katex # 推荐选择 katex,如选择 mathjax,会出现 LaTeX 公式不能换行等问题。
footer: "作者姓名@作者单位 yyyy-mm-dd"
style: |
* {
font-size: 20px;
}

* > span {
font-size: 1em;
}

/* 默认风格的行内代码 */
:not(pre) > code {
background-color: #f8f8f8;
color: #333;
padding: 2px 5px;
border-radius: 3px;
white-space: pre-wrap;
}

/* 默认风格的代码块 */
pre > code {
background-color: #f8f8f8;
color: #333;
padding: 10px;
border-radius: 5px;
white-space: pre-wrap;
}


/* 覆盖原有代码块的背景颜色 */
pre {
background-color: transparent;
width: 100%;
}

/* 图片居中 */
img {
display: block;
margin-left: auto;
margin-right: auto;
}
---

$$
\gdef\po{\mathsf{\textcolor{red}{po}}}
\gdef\so{\mathsf{\textcolor{purple}{so}}}
$$

<!--
_class: lead gaia
_paginate: false
backgroundColor: white
_footer: ""
_color: purple
-->

# 封面一级标题

---

<!-- backgroundColor: white -->

## 页面二级标题

---

<!--
_class: lead gaia
_paginate: false
_backgroundColor: purple
_color: white
_footer: ""
-->

# 封底一级标题

教材 P239,11 题

综合实验:用 Find Security Bugs (http://find-sec-bugs.github.io)工具静态分析 WebGoat。WebGoat 是 OWASP 组织研制出的用于进行 Web 漏洞实验的应用平台,官方网址是 http://www.owasp.org.cn/owasp-project/webscan-platform。WebGoat 运行在带有 Java 虚拟机的平台之上,当前提供的训练课程有 30 多个,其中包括:跨站点脚本攻击(XSS)、访问控制、线程安全、操作隐藏字段、操纵参数、弱会话 Cookie、SQL 盲注、数字型 SQL 注入、字符串型 SQL 注入和 Web 服务等。完成实验报告。

Clone WebGoat 源码

1
git clone git@github.com:WebGoat/WebGoat.git

下载 Find Security Bugs 插件

阅读全文 »

教材 P239,15 题

综合实验:使用 American Fuzzy Lop(http:/lcamtuf.coredump.cx/afl/)工具挖掘 C/C++程序漏洞。完成实验报告。

实验环境:WSL2

配置 American Fuzzy Lop

1
2
3
4
5
6
wget http://lcamtuf.coredump.cx/afl/releases/afl-2.52b.tgz
tar -zxvf afl-2.52b.tgz
cd afl-2.52b/
make
sudo make install
afl-fuzz
阅读全文 »

$$ \def\ReadSet{\mathsf{ReadSet}} \def\WriteSet{\mathsf{WriteSet}} \def\Attr{\mathsf{Attr}} \def\Account{Account} \def\Savings{Savings} \def\Checking{Checking} \def\Balance{Balance} \def\Amalgamate{Amalgamate} \def\Var{\mathsf{Var}} \def\Tuples{\mathsf{Tuples}} \def\prefix{\mathsf{prefix}} \def\postfix{\mathsf{postfix}} \def\ww{\mathsf{ww}} \def\rw{\mathsf{rw}} \def\wr{\mathsf{wr}} \def\pcfg{\mathsf{prefix-conflict-free-graph}} \def\R{\mathsf{R}} \def\W{\mathsf{W}} \def\U{\mathsf{U}} \def\t{\mathsf{t}} \def\v{\mathsf{v}} \def\T{\mathcal{T}} \def\P{\mathcal{P}} \def\D{\mathrm{D}} \def\C{\mathrm{C}} $$

摘要

众所周知,许多数据库系统提供的隔离级别多版本读取已提交 (RC) 会牺牲一致性来换取更高的事务吞吐量。有时,事务工作负载可以在 RC 下安全执行,以较低的 RC 成本获得完美的可序列化隔离。为了识别这种情况,我们引入了一个事务程序的表达模型,以更好地推理事务工作负载的可序列化性。**我们开发了易处理的算法来决定在 RC 下执行的工作负载的任何可能调度是否可序列化(称为稳健性问题)。**我们的方法产生的稳健子集比以前的方法识别的子集更大。我们提供实验证据表明,与更强的隔离级别相比,在 RC 下可以更快地评估对 RC 具有稳健性的工作负载。我们讨论了通过将选择性读取操作提升为更新来使工作负载对 RC 具有稳健性的技术。根据场景的不同,性能改进可能相当可观。因此,在较低的隔离级别 RC 下进行稳健性测试和安全地执行事务可以提供一种直接的方法来增加事务吞吐量,而无需更改 DBMS 内部结构。

作者:

  • Brecht Vandevoort, UHasselt, Data Science Institute, ACSL, Belgium
  • Bas Ketsman, Vrije Universiteit Brussel, Belgium
  • Christoph Koch, École Polytechnique Fédérale de Lausanne, Switzerland
  • Frank Neven, UHasselt, Data Science Institute, ACSL, Belgium
阅读全文 »

摘要

本文记录了南京大学师生免费领取华为云云主机的步骤,以供参考。

领取步骤

  1. 手机下载“华为云 APP”并注册、登录;
  2. 使用“华为云 APP”扫描二维码(本文不提供二维码);
  3. 自动跳转云主机领取配置页面(这一步骤需要时间,请耐心等待);
阅读全文 »

摘要

商业数据库支持不同的隔离级别,以允许程序员在一致性和性能提升之间做出权衡。隔离级别在当前的 ANSI 标准中定义,但定义含糊不清,而为纠正该问题而提出的修订定义过于受限,因为它们仅允许悲观(锁定)实现。本文介绍了 ANSI 级别的新规范。我们的规范是可移植的;它们不仅适用于锁定实现,还适用于乐观和多版本并发控制方案。此外,与早期的定义不同,我们的新规范在所有级别上以正确且灵活的方式处理谓词。

Introduction

本文给出了 ANSI-SQL 隔离级别的新、精确定义 [6]。与以前的提案 [13、6、8] 不同,新定义既正确(它们排除了所有不良历史记录),又独立于实现。我们的规范允许使用各种并发控制技术,包括锁定、乐观技术 [20、2、5] 和多版本机制 [9、24]。因此,它们符合 ANSI-SQL 的目标,可以用作隔离标准。

隔离级别的概念最初是在 [13] 中以一致性程度的名称引入的。这项工作的目标是通过牺牲完全隔离的保证来为工作负载提供更好的并发性。[13] 中的工作和 [11] 建议的一些改进为 ANSI/ISO SQL-92 隔离级别定义 [6] 奠定了基础,其目标是制定一个独立于实现的标准。然而,后续论文 [8] 表明 [6] 中提供的定义含糊不清。该论文提出了避免歧义问题的不同定义,但如 [8] 所述,这些定义只是“锁定的伪装版本”,因此不允许乐观和多版本机制。因此,这些定义未能满足 ANSI-SQL 关于实现独立性的目标。

阅读全文 »

摘要

数据异常尚没有统一的定义, 其含义是指可能破坏数据库一致性状态的特定数据操作模式. 已知的数据异常有脏写、脏读、不可重复读、幻读、丢失更新、读偏序和写偏序等. 为了提高并发控制算法的效率, 数据异常也被用于定义隔离级别, 采用较弱的隔离级别以提高事务处理系统的效率. 体系化地研究了数据异常以及对应的隔离级别, 发现了 22 种未被其他文献报告过的新的数据异常, 并对全部数据异常进行分类. 基于数据异常的分类, 提出了新的且不同粒度的隔离级别体系, 揭示基于数据异常定义隔离级别的规律, 使得对于数据异常和隔离级别等相关概念的认知可以更加简明.

摘要

SQL Isolation Levels

上一节讨论了手动控制每个应用程序甚至每个事务的锁定持续时间的想法,通过仅允许应用程序架构师或开发人员选择有限数量的“锁定样式”选项,可以使其更加安全。这些选项称为隔离级别,其中之一就是通常的冲突可串行化概念,它们甚至已被纳入 SQL 标准。通过发出相应的 SQL 命令“set isolation level ...”来选择特定的隔离级别

SQL 标准支持的隔离级别是根据与(强)严格两阶段锁定的受控偏差来定义的。然而,它们应该被理解为调度类,尽管是由特定的锁定协议生成的,但可以通过服务器选择使用的任何适当的并发控制算法来强制执行。实际上最重要的隔离级别定义如下:

定义 10.1 隔离级别

如果根据 S2PL 获取和释放写锁,即所有写锁都保持到事务结束,则称调度 $s$ 在隔离级别读未提交(Read Uncomitted,也称为脏读或浏览级别)下运行。

如果根据 S2PL 获取和释放写锁,并且读锁(至少)在客户端发出的每个数据服务器操作的持续时间内保持,则称调度 $s$ 在隔离级别读已提交(Read Comitted,也称为游标稳定性级别)下运行。

如果调度 $s$ 可以通过 S2PL 协议生成,则称调度 s 在隔离级别(冲突)可串行化(SER)下运行。

阅读全文 »