From 61b5bc35e79b07de172f54f12b4a848c7bf41ca4 Mon Sep 17 00:00:00 2001 From: Denis Koltsov Date: Sat, 19 Nov 2016 17:26:46 +0100 Subject: [PATCH] Hide raw/endraw tags for a regular markdown --- ja/04.3.md | 5 ++--- ja/04.5.md | 4 ++-- ja/06.4.md | 4 ++-- ja/07.1.md | 4 ++-- ja/07.4.md | 4 ++-- ja/09.1.md | 4 ++-- ja/10.2.md | 4 ++-- ja/10.3.md | 4 ++-- ja/12.2.md | 4 ++-- ja/13.3.md | 4 ++-- ja/13.5.md | 4 ++-- ja/14.3.md | 4 ++-- ja/14.5.md | 4 ++-- zh/09.1.md | 4 ++-- zh/10.2.md | 4 ++-- zh/10.3.md | 4 ++-- zh/12.2.md | 4 ++-- zh/13.3.md | 4 ++-- zh/13.5.md | 4 ++-- zh/14.3.md | 4 ++-- zh/14.5.md | 4 ++-- 21 files changed, 42 insertions(+), 43 deletions(-) diff --git a/ja/04.3.md b/ja/04.3.md index 78cf119b..bdbf5816 100644 --- a/ja/04.3.md +++ b/ja/04.3.md @@ -1,4 +1,3 @@ -{% raw %} # 4.3 クロスサイトスクリプティングの予防 現在のホームページは大量の動的なコンテンツを含みユーザのエクスペリエンスを高めています。以前に比べてとても複雑になっています。いわゆる動的なコンテンツとはユーザの環境と要求に応じてWebアプリケーションが目的の内容を出力できることを指します。動的なホームページは"クロスサイトスクリプティング"(Cross Site Scripting、セキュリティ専門家が一般的にXSSと省略するもの)と呼ばれる攻撃を受けることがあります。 @@ -27,7 +26,7 @@ Goではどのようにこの効果的な防御を行なっているのでしょ 図4.3 Javascriptフィルターによる出力 Goのhtml/templateパッケージはデフォルトでhtmlタグをフィルターします。しかし時にはこの``を正常な情報として出力したい場合があるかもしれません。そのような場合はどのように処理するべきでしょうか?この場合はtext/templateをご利用ください。下の例をご覧ください: - + import "text/template" ... t, err := template.New("foo").Parse(`{{define "T"}}Hello, {{.}}!{{end}}`) @@ -67,4 +66,4 @@ Goのhtml/templateパッケージはデフォルトでhtmlタグをフィルタ * [目次]() * 前へ: [入力値の検証](<04.2.md>) * 次へ: [フォームの複数回送信の防止](<04.4.md>) -{% endraw %} + diff --git a/ja/04.5.md b/ja/04.5.md index c02357e6..4e11b87b 100644 --- a/ja/04.5.md +++ b/ja/04.5.md @@ -1,4 +1,4 @@ -{% raw %} + # 4.5 ファイルのアップロード処理 ユーザによるファイルのアップロードを処理したいとします。例えば、現在Instagramのようなホームページを作成しているとします。ユーザが撮影した写真を保存する必要があります。このような要求はどのように実現するのでしょうか? @@ -156,4 +156,4 @@ * [目次]() * 前へ: [フォームの多重送信の防止](<04.4.md>) * 次へ: [まとめ](<04.6.md>) -{% endraw %} + diff --git a/ja/06.4.md b/ja/06.4.md index 5f001b46..4649f8e1 100644 --- a/ja/06.4.md +++ b/ja/06.4.md @@ -1,4 +1,4 @@ -{% raw %} + # 6.4 sessionハイジャックの予防 sessionハイジャックは広範囲に存在する比較的重大な脆弱性です。session技術において、クライアントサイドとサーバサイドはsessionのIDによってセッションを維持します。しかしこのIDは簡単にスニッフィングされ、第三者に利用されてしまいます。これは中間者攻撃の一種です。 @@ -88,4 +88,4 @@ sessionが始まると、生成されたsessionIDの時間を記録する一つ * [目次]() * 前へ: [sessionストレージ](<06.3.md>) * 次へ: [まとめ](<06.5.md>) -{% endraw %} + diff --git a/ja/07.1.md b/ja/07.1.md index 1ca83bfd..a2158879 100644 --- a/ja/07.1.md +++ b/ja/07.1.md @@ -1,4 +1,4 @@ -{% raw %} + # 7.1 XMLの処理 XMLはデータと情報のやりとりするための形式として十分普及しています。Webサービスが日々広範囲で応用されてくるにつれ、現在XMLは日常的な開発作業において重要な役割を演じてきました。この節ではGo言語の標準パッケージにあるXML関連のパッケージをご紹介します。 @@ -220,4 +220,4 @@ XMLをstructに解析する際は以下のルールに従います:  * [目次]() * 前へ: [テキスト処理](<07.0.md>) * 次へ: [Jsonの処理](<07.2.md>) -{% endraw %} + diff --git a/ja/07.4.md b/ja/07.4.md index 9f5f7150..7b1c2eff 100644 --- a/ja/07.4.md +++ b/ja/07.4.md @@ -1,4 +1,4 @@ -{% raw %} + # 7.4 テンプレートの処理 ## テンプレートとは何か おそらくあなたはMVCのデザインパターンについて聞いたことがあると思います。Modelはデータを処理を、Viewは表示結果を、Controllerはユーザのリクエストの制御を行います。Viewレイヤーの処理では、多くの動的な言語ではどれも静的なHTMLの中に動的言語が生成したデータを挿入します。例えばJSPでは`<%=....=%>`を挿入することで、PHPでは``を挿入することで実現します。 @@ -349,4 +349,4 @@ Webアプリケーションを作る時はテンプレートの一部が固定 * [目次]() * 前へ: [正規表現の処理](<07.3.md>) * 次へ: [ファイルの操作](<07.5.md>) -{% endraw %} + diff --git a/ja/09.1.md b/ja/09.1.md index 74c30a45..9d543f8d 100644 --- a/ja/09.1.md +++ b/ja/09.1.md @@ -1,4 +1,4 @@ -{% raw %} + # 9.1 CSRF攻撃の予防 ## CSRFとは何か  @@ -92,4 +92,4 @@ tokenを検証 * [目次]() * 前へ: [セキュリティと暗号化](<09.0.md>) * 次へ: [入力フィルタリングの確保](<09.2.md>) -{% endraw %} + diff --git a/ja/10.2.md b/ja/10.2.md index c761e099..7db10062 100644 --- a/ja/10.2.md +++ b/ja/10.2.md @@ -1,4 +1,4 @@ -{% raw %} + # 10.2 ローカライズリソース 前の節ではどのようにしてLocaleを設定するかご紹介しました。Localeを設定したあとはどのようにしてLocaleに対応する情報を保存するかという問題を解決する必要があります。ここでの情報とは以下の内容を含みます:テキスト情報、時間と日時、通貨の値、画像、ファイルや動画といったリソース等です。ここではこれらの情報に対してご紹介していきたいと思います。Go言語ではこれらのフォーマットの情報をJSONに保存します。その後それぞれ適した方法によって表示します。(以下では日本語と英語の2つの言語を対比して例を挙げます。保存の形式はそれぞれen.jsonとja-JP.jsonです。) ## ローカライズテキスト情報 @@ -133,4 +133,4 @@ Localeの違いによってビューを表示させる場合もあるかもし * [目次]() * 前へ: [デフォルトロケールの設定](<10.1.md>) * 次へ: [国際化サイト](<10.3.md>) -{% endraw %} + diff --git a/ja/10.3.md b/ja/10.3.md index dfa7eaa1..ed517a3c 100644 --- a/ja/10.3.md +++ b/ja/10.3.md @@ -1,4 +1,4 @@ -{% raw %} + # 10.3 国際化サイト 前の節でどのようにしてローカライズリソースを処理するかご紹介しました。Localeに対応した設定ファイルです。ではもし複数のローカライズリソースを処理する場合は?いくつかの我々が通常使用する例は:簡単なテキスト翻訳、時間や日時、数字といったものはどのように処理するのでしょうか?この節では一つ一つこれらの問題を解決していきます。 ## 複数のロケールパッケージの管理 @@ -179,4 +179,4 @@ * [目次]() * 前へ: [ローカライズリソース](<10.2.md>) * 次へ: [まとめ](<10.4.md>) -{% endraw %} + diff --git a/ja/12.2.md b/ja/12.2.md index f186ac0f..c6201707 100644 --- a/ja/12.2.md +++ b/ja/12.2.md @@ -1,4 +1,4 @@ -{% raw %} + # 12.2 サイトエラー処理 我々のWebアプリケーションが一旦実運用されると、さまざまなエラーが発生する可能性があります。Webアプリケーションの日常の実行ではいくつものエラーが発生する可能性があります。具体的には以下のとおり: @@ -123,4 +123,4 @@ * [目次]() * 前へ: [アプリケーションログ](<12.1.md>) * 次へ: [アプリケーションのデプロイ](<12.3.md>) -{% endraw %} + diff --git a/ja/13.3.md b/ja/13.3.md index 5526c9a8..f772e3c9 100644 --- a/ja/13.3.md +++ b/ja/13.3.md @@ -1,4 +1,4 @@ -{% 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のコードは以下のようになります。データの設定と * [目次]() * 前へ: [カスタム定義のルータの設計](<13.2.md>) * 次へ: [ログとコンフィグ設計](<13.4.md>) -{% endraw %} + diff --git a/ja/13.5.md b/ja/13.5.md index b18c68d7..332ef9ec 100644 --- a/ja/13.5.md +++ b/ja/13.5.md @@ -1,4 +1,4 @@ -{% raw %} + # 13.5 ブログの追加/削除/修正の実装 前ではbeegoフレームワークの全体的な構造思想の実装とニセコードの一部の実装についてご紹介しました。この節ではbeegoを通してブログシステムを設計しましょう。これにはブログの閲覧、追加、修正、削除といった操作が含まれます。 @@ -257,4 +257,4 @@ edit.tpl * [目次]() * 前へ: [ログとコンフィグ設計](<13.4.md>) * 次へ: [まとめ](<13.6.md>) -{% endraw %} + diff --git a/ja/14.3.md b/ja/14.3.md index 12408378..a83b568e 100644 --- a/ja/14.3.md +++ b/ja/14.3.md @@ -1,4 +1,4 @@ -{% raw %} + # 14.3 フォームおよび検証のサポート Web開発ではこのようなプロセスをよく見かけます: @@ -280,4 +280,4 @@ structを定義したらcontrollerにおいてこのように操作します * [目次]() * 前へ: [Sessionのサポート](<14.2.md>) * 次へ: [ユーザの認証](<14.4.md>) -{% endraw %} + diff --git a/ja/14.5.md b/ja/14.5.md index a3e3cde0..a2ee37f4 100644 --- a/ja/14.5.md +++ b/ja/14.5.md @@ -1,4 +1,4 @@ -{% raw %} + # 14.5 多言語サポート 第10章において国際化とローカライゼーションおよびgo-i18nライブラリの開発についてご紹介しました。この節ではこのライブラリをbeegoフレームワークの中にもってくることで、我々のフレームワークにおいて国際化とローカライゼーションをサポートさせます。 @@ -112,4 +112,4 @@ beegoにおいて以下のようにグローバル変数を設定します: * [目次]() * 前へ: [ユーザ認証](<14.4.md>) * 次へ: [pprofのサポート](<14.6.md>) -{% endraw %} + diff --git a/zh/09.1.md b/zh/09.1.md index e873bd95..baaed84f 100644 --- a/zh/09.1.md +++ b/zh/09.1.md @@ -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攻击的思想 ![](images/9.1.csrf.png?raw=true) @@ -92,4 +93,3 @@ CSRF的防御可以从服务端和客户端两方面着手,防御效果是从 * [目录]() * 上一节: [安全与加密](<09.0.md>) * 下一节: [确保输入过滤](<09.2.md>) -{% endraw %} diff --git a/zh/10.2.md b/zh/10.2.md index b507e8f7..e3ed7a19 100644 --- a/zh/10.2.md +++ b/zh/10.2.md @@ -1,4 +1,4 @@ -{% raw %} + # 10.2 本地化资源 前面小节我们介绍了如何设置Locale,设置好Locale之后我们需要解决的问题就是如何存储相应的Locale对应的信息呢?这里面的信息包括:文本信息、时间和日期、货币值、图片、包含文件以及视图等资源。那么接下来我们将对这些信息一一进行介绍,Go语言中我们把这些格式信息存储在JSON中,然后通过合适的方式展现出来。(接下来以中文和英文两种语言对比举例,存储格式文件en.json和zh-CN.json) ## 本地化文本消息 @@ -133,4 +133,4 @@ $GOROOT/lib/time包中的timeinfo.zip含有locale对应的时区的定义,为 * [目录]() * 上一节: [设置默认地区](<10.1.md>) * 下一节: [国际化站点](<10.3.md>) -{% endraw %} + diff --git a/zh/10.3.md b/zh/10.3.md index 00659ed9..2f702a65 100644 --- a/zh/10.3.md +++ b/zh/10.3.md @@ -1,4 +1,4 @@ -{% raw %} + # 10.3 国际化站点 前面小节介绍了如何处理本地化资源,即Locale一个相应的配置文件,那么如果处理多个的本地化资源呢?而对于一些我们经常用到的例如:简单的文本翻译、时间日期、数字等如果处理呢?本小节将一一解决这些问题。 ## 管理多个本地包 @@ -179,4 +179,4 @@ * [目录]() * 上一节: [本地化资源](<10.2.md>) * 下一节: [小结](<10.4.md>) -{% endraw %} + diff --git a/zh/12.2.md b/zh/12.2.md index 88581702..67ad1965 100644 --- a/zh/12.2.md +++ b/zh/12.2.md @@ -1,4 +1,4 @@ -{% raw %} + # 12.2 网站错误处理 我们的Web应用一旦上线之后,那么各种错误出现的概率都有,Web应用日常运行中可能出现多种错误,具体如下所示: @@ -123,4 +123,4 @@ * [目录]() * 上一章: [应用日志](<12.1.md>) * 下一节: [应用部署](<12.3.md>) -{% endraw %} + diff --git a/zh/13.3.md b/zh/13.3.md index 97177e55..8a8e7aed 100644 --- a/zh/13.3.md +++ b/zh/13.3.md @@ -1,4 +1,4 @@ -{% 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的代码如下所示,我们可以看到数据的设置和显示都 * [目录]() * 上一章: [自定义路由器设计](<13.2.md>) * 下一节: [日志和配置设计](<13.4.md>) -{% endraw %} + diff --git a/zh/13.5.md b/zh/13.5.md index 9c524047..83888f39 100644 --- a/zh/13.5.md +++ b/zh/13.5.md @@ -1,4 +1,4 @@ -{% raw %} + # 13.5 实现博客的增删改 前面介绍了beego框架实现的整体构思以及部分实现的伪代码,这小节介绍通过beego建立一个博客系统,包括博客浏览、添加、修改、删除等操作。 @@ -258,4 +258,4 @@ edit.tpl * [目录]() * 上一章: [日志和配置设计](<13.4.md>) * 下一节: [小结](<13.6.md>) -{% endraw %} + diff --git a/zh/14.3.md b/zh/14.3.md index 8376c967..bf9bf2e1 100644 --- a/zh/14.3.md +++ b/zh/14.3.md @@ -1,4 +1,4 @@ -{% raw %} + # 14.3 表单及验证支持 在Web开发中对于这样的一个流程可能很眼熟: @@ -280,4 +280,4 @@ * [目录]() * 上一节: [Session支持](<14.2.md>) * 下一节: [用户认证](<14.4.md>) -{% endraw %} + diff --git a/zh/14.5.md b/zh/14.5.md index 5ee02383..e37cfe8d 100644 --- a/zh/14.5.md +++ b/zh/14.5.md @@ -1,4 +1,4 @@ -{% raw %} + # 14.5 多语言支持 我们在第十章介绍过国际化和本地化,开发了一个go-i18n库,这小节我们将把该库集成到beego框架里面来,使得我们的框架支持国际化和本地化。 @@ -112,4 +112,4 @@ beego中设置全局变量如下: * [目录]() * 上一节: [用户认证](<14.4.md>) * 下一节: [pprof支持](<14.6.md>) -{% endraw %} +