Hide raw/endraw tags for a regular markdown
This commit is contained in:
@@ -1,7 +1,7 @@
|
||||
{% raw %}
|
||||
# 9.1 预防CSRF攻击
|
||||
|
||||
## 什么是CSRF
|
||||
|
||||
CSRF(Cross-site request forgery),中文名称:跨站请求伪造,也被称为:one click attack/session riding,缩写为:CSRF/XSRF。
|
||||
|
||||
那么CSRF到底能够干嘛呢?你可以这样简单的理解:攻击者可以盗用你的登陆信息,以你的身份模拟发送各种请求。攻击者只要借助少许的社会工程学的诡计,例如通过QQ等聊天软件发送的链接(有些还伪装成短域名,用户无法分辨),攻击者就能迫使Web应用的用户去执行攻击者预设的操作。例如,当用户登录网络银行去查看其存款余额,在他没有退出时,就点击了一个QQ好友发来的链接,那么该用户银行帐户中的资金就有可能被转移到攻击者指定的帐户中。
|
||||
@@ -9,6 +9,7 @@ CSRF(Cross-site request forgery),中文名称:跨站请求伪造,也
|
||||
所以遇到CSRF攻击时,将对终端用户的数据和操作指令构成严重的威胁;当受攻击的终端用户具有管理员帐户的时候,CSRF攻击将危及整个Web应用程序。
|
||||
|
||||
## CSRF的原理
|
||||
|
||||
下图简单阐述了CSRF攻击的思想
|
||||
|
||||

|
||||
@@ -92,4 +93,3 @@ CSRF的防御可以从服务端和客户端两方面着手,防御效果是从
|
||||
* [目录](<preface.md>)
|
||||
* 上一节: [安全与加密](<09.0.md>)
|
||||
* 下一节: [确保输入过滤](<09.2.md>)
|
||||
{% endraw %}
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
{% raw %}
|
||||
<!-- {% raw %} -->
|
||||
# 10.2 本地化资源
|
||||
前面小节我们介绍了如何设置Locale,设置好Locale之后我们需要解决的问题就是如何存储相应的Locale对应的信息呢?这里面的信息包括:文本信息、时间和日期、货币值、图片、包含文件以及视图等资源。那么接下来我们将对这些信息一一进行介绍,Go语言中我们把这些格式信息存储在JSON中,然后通过合适的方式展现出来。(接下来以中文和英文两种语言对比举例,存储格式文件en.json和zh-CN.json)
|
||||
## 本地化文本消息
|
||||
@@ -133,4 +133,4 @@ $GOROOT/lib/time包中的timeinfo.zip含有locale对应的时区的定义,为
|
||||
* [目录](<preface.md>)
|
||||
* 上一节: [设置默认地区](<10.1.md>)
|
||||
* 下一节: [国际化站点](<10.3.md>)
|
||||
{% endraw %}
|
||||
<!-- {% endraw %} -->
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
{% raw %}
|
||||
<!-- {% raw %} -->
|
||||
# 10.3 国际化站点
|
||||
前面小节介绍了如何处理本地化资源,即Locale一个相应的配置文件,那么如果处理多个的本地化资源呢?而对于一些我们经常用到的例如:简单的文本翻译、时间日期、数字等如果处理呢?本小节将一一解决这些问题。
|
||||
## 管理多个本地包
|
||||
@@ -179,4 +179,4 @@
|
||||
* [目录](<preface.md>)
|
||||
* 上一节: [本地化资源](<10.2.md>)
|
||||
* 下一节: [小结](<10.4.md>)
|
||||
{% endraw %}
|
||||
<!-- {% endraw %} -->
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
{% raw %}
|
||||
<!-- {% raw %} -->
|
||||
# 12.2 网站错误处理
|
||||
我们的Web应用一旦上线之后,那么各种错误出现的概率都有,Web应用日常运行中可能出现多种错误,具体如下所示:
|
||||
|
||||
@@ -123,4 +123,4 @@
|
||||
* [目录](<preface.md>)
|
||||
* 上一章: [应用日志](<12.1.md>)
|
||||
* 下一节: [应用部署](<12.3.md>)
|
||||
{% endraw %}
|
||||
<!-- {% endraw %} -->
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
{% raw %}
|
||||
<!-- {% raw %} -->
|
||||
# 13.3 controller设计
|
||||
|
||||
传统的MVC框架大多数是基于Action设计的后缀式映射,然而,现在Web流行REST风格的架构。尽管使用Filter或者rewrite能够通过URL重写实现REST风格的URL,但是为什么不直接设计一个全新的REST风格的 MVC框架呢?本小节就是基于这种思路来讲述如何从头设计一个基于REST风格的MVC框架中的controller,最大限度地简化Web应用的开发,甚至编写一行代码就可以实现“Hello, world”。
|
||||
@@ -162,4 +162,4 @@ index.tpl的代码如下所示,我们可以看到数据的设置和显示都
|
||||
* [目录](<preface.md>)
|
||||
* 上一章: [自定义路由器设计](<13.2.md>)
|
||||
* 下一节: [日志和配置设计](<13.4.md>)
|
||||
{% endraw %}
|
||||
<!-- {% endraw %} -->
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
{% raw %}
|
||||
<!-- {% raw %} -->
|
||||
# 13.5 实现博客的增删改
|
||||
|
||||
前面介绍了beego框架实现的整体构思以及部分实现的伪代码,这小节介绍通过beego建立一个博客系统,包括博客浏览、添加、修改、删除等操作。
|
||||
@@ -258,4 +258,4 @@ edit.tpl
|
||||
* [目录](<preface.md>)
|
||||
* 上一章: [日志和配置设计](<13.4.md>)
|
||||
* 下一节: [小结](<13.6.md>)
|
||||
{% endraw %}
|
||||
<!-- {% endraw %} -->
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
{% raw %}
|
||||
<!-- {% raw %} -->
|
||||
# 14.3 表单及验证支持
|
||||
在Web开发中对于这样的一个流程可能很眼熟:
|
||||
|
||||
@@ -280,4 +280,4 @@
|
||||
* [目录](<preface.md>)
|
||||
* 上一节: [Session支持](<14.2.md>)
|
||||
* 下一节: [用户认证](<14.4.md>)
|
||||
{% endraw %}
|
||||
<!-- {% endraw %} -->
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
{% raw %}
|
||||
<!-- {% raw %} -->
|
||||
# 14.5 多语言支持
|
||||
我们在第十章介绍过国际化和本地化,开发了一个go-i18n库,这小节我们将把该库集成到beego框架里面来,使得我们的框架支持国际化和本地化。
|
||||
|
||||
@@ -112,4 +112,4 @@ beego中设置全局变量如下:
|
||||
* [目录](<preface.md>)
|
||||
* 上一节: [用户认证](<14.4.md>)
|
||||
* 下一节: [pprof支持](<14.6.md>)
|
||||
{% endraw %}
|
||||
<!-- {% endraw %} -->
|
||||
|
||||
Reference in New Issue
Block a user