飞污熊博客

静下心来做一件事

常见的高可用MySQL解决方案有主从复制,主主复制,Heartbeat/SAN高可用,MySQL Cluster高可用等等。 这里我使用最简单的主从复制高可用方案,也是Mysql内置的功能。

mysql主从复制原理:

  1. master将数据改变记录到二进制日志(binary log)中,也即是配置文件log-bin指定的文件(这些记录叫做二进制日志事件)
  2. slave将master的binary log events拷贝到它的中继日志(relay log)
  3. slave重做中继日志中的事件,将改变反映它自己的数据(数据重演)

其实就是根据主数据库的日志文件来进行同步。

阅读全文 »

内部需要搭建一个源码管理控制环境,选择开源的gitlab,环境为centos7。这个平台类似于github,使用起来非常方便。 现在将搭建的步骤记录下来,因为官网上面提供的是ubuntu的流程。

全部命令都是在 root 用户下执行。安装操作系统 (CentOS 7 Minimal),先配置好网卡和DNS,保证网络没问题。

安装和添加基础工具

1
yum install wget

安装EPEL源

1
2
3
yum install epel-release
wget -O /etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6 https://www.fedoraproject.org/static/0608B895.txt
rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6
阅读全文 »

jinja2是python中的一个优秀的模板语言,类似于django的模板。它的速度快,安全,目前被各种框架被广泛使用。 官网地址:http://jinja.pocoo.org/

它的一些特性:

  • 沙箱执行机制很安全
  • 通过对HTML进行自动转义防止XSS攻击
  • 模板继承
  • 实时编译为最优化的python代码,使得它运行速度非常快
  • 可选的模板预编译
  • 容易调试,错误行数直接指向模板中的行
  • 配置文件语法也是模板
阅读全文 »

在平时开发中,如果网速比较慢的情况下,用户提交表单后,发现服务器半天都没有响应, 那么用户可能会以为是自己没有提交表单,就会再点击提交按钮重复提交表单,我们在开发中必须防止表单重复提交。

阅读全文 »

SQL注入攻击(SQL Injection),简称注入攻击,是Web开发中最常见的一种安全漏洞。 可以用它来从数据库获取敏感信息,或者利用数据库的特性执行添加用户,导出文件等一系列恶意操作, 甚至有可能获取数据库乃至系统用户最高权限。

而造成SQL注入的原因是因为程序没有有效过滤用户的输入,使攻击者成功的向服务器提交恶意的SQL查询代码, 程序在接收后错误的将攻击者的输入作为查询语句的一部分执行,导致原始的查询逻辑被改变, 额外的执行了攻击者精心构造的恶意代码。

阅读全文 »

XSS攻击:跨站脚本攻击(Cross-Site Scripting),为了不和层叠样式表(Cascading Style Sheets, CSS)的缩写混淆, 故将跨站脚本攻击缩写为XSS。XSS是一种常见的web安全漏洞,它允许攻击者将恶意代码植入到提供给其它用户使用的页面中。

这个是动态站点的威胁,静态站点完全不受其影响。

阅读全文 »

CSRF是Cross Site Request Forgery的缩写,翻译过来就是跨站请求伪造。 也被称为 one click attack/session riding,缩写为:CSRF/XSRF。

你这可以这么理解CSRF攻击:从一个网站A中发起一个到网站B的请求,而这个请求是经过了伪装的, 伪装操作达到的目的就是让请求看起来像是从网站B中发起的, 也就是说,让B网站所在的服务器端误以为该请求是从自己网站发起的,而不是从A网站发起的。当然,请求一般都是恶意的。

要真正理解为什么有CSRF攻击存在,那先了解几个浏览器的跨域访问限制。

阅读全文 »

Http协议里包含了控制缓存的部分,以使Http客户端可以缓存和重用以前获取的资源,从而优化性能,提升体验。

在开发Web服务时,只需要关注请求头If-None-Match、响应头ETag、响应头Cache-Control就足够了。 因为这三个Http头就可以满足你的需求,并且,当今绝大多数的浏览器,都支持这三个Http头。

阅读全文 »

有时候内网很多机器都不能上外网,只能开放几个特定ip访问外网, 那么可以在这个可以上外网的机器上面搭建代理服务器,其他机器配置好代理就能上网了。

不管是测试用途还是自己使用,squid都是一个很不错的代理工具。支持正向代理、反向代理、还有透明代理。 本篇演示搭建了一个简单的squid的正向代理,同时支持认证,随便记记笔记。

阅读全文 »

作为互联网基础设施中重要一环的DNS域名解析服务,在互联网中所承担的重要角色和发挥的重要作用。 Bind是一款开放源码的DNS服务器软件,Bind由美国加州大学Berkeley分校开发和维护的, 全名为Berkeley Internet Name Domain,它是目前世界上使用最为广泛的DNS服务器软件。

本篇演示如何在CentOS 7上架设域名服务器,以及如何使用chroot牢笼机制插件来保障bind服务程序的可靠性, 并向大家演示如何在主服务器与从服务器之间部署TSIG密钥加密功能,来进一步保障迭代查询中数据的安全性。

阅读全文 »